ฉันใช้บทช่วยสอนต่อไปนี้เพื่อช่วยฉันสร้าง RSS Reader ในแอปพลิเคชัน ASP.NET MVC3 Razor ของฉัน:
อย่างไรก็ตาม ไม่เหมือนกับตัวอย่างการสอน ฉันต้องการให้ฟีด RSS แสดงในทุกหน้า ดังนั้นจึงเพิ่มฟีดดังกล่าวลงในไฟล์เลย์เอาต์ของฉัน /Views/Shared/_Layout.cshtml
ขณะนี้ฉันมีมุมมองเพียง 2 ครั้งบนไซต์ของฉัน และเพื่อให้โปรแกรมอ่าน RSS ทำงานกับทั้งสองมุมมอง ฉันได้โค้ดต่อไปนี้ใน HomeController
ของฉัน:
public class HomeController : Controller
{
//
// GET: /Index/
public ActionResult Index()
{
return View(CT.Models.RssReader.GetRssFeed());
}
public ActionResult About()
{
return View(CT.Models.RssReader.GetRssFeed());
}
}
จากประสบการณ์ WebForms ของฉัน ฉันจะเพิ่มโค้ด RSS Reader ลงในโค้ดหน้าหลักของฉันที่อยู่ด้านหลัง และโค้ดจะทำงานในทุกหน้าโดยอัตโนมัติ
มีตัวควบคุมสำหรับเลย์เอาต์เพจที่ช่วยให้ฉันทำแบบเดียวกันได้หรือไม่
ฉันจะทำให้สิ่งนี้ทำงานทุกครั้งที่เรียกใช้หน้าเค้าโครงโดยไม่ต้องส่งคืนสิ่งใดได้อย่างไร
แก้ไข: ตามคำแนะนำของ @ Sebastian ตอนนี้ฉันได้เพิ่มโค้ดนี้ในมุมมองบางส่วน โดยลบ CT.Models.RssReader.GetRssFeed()
ออกจาก return View()
และรวมสิ่งนี้ไว้ในไฟล์เลย์เอาต์ของฉัน:
@Html.Partial("_MyPartialView")
รหัสในมุมมองบางส่วนนี้คือ:
<ul>
@foreach (var item in Model)
{
<li>
<a href="/[email protected]" target="_blank">@item.Title</a>
</li>
}
</ul>
อย่างไรก็ตาม ฉันไม่ได้รับข้อผิดพลาดรันไทม์:
การอ้างอิงวัตถุไม่ได้ตั้งค่าเป็นอินสแตนซ์ของวัตถุ
เกิดข้อผิดพลาดในบรรทัด @foreach (var item in Model)