【发布时间】:2012-03-14 18:46:38
【问题描述】:
我使用以下教程帮助我在我的 ASP.NET MVC3 Razor 应用程序中构建了一个 RSS 阅读器:
但是,与教程示例不同,我希望 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 阅读器代码,它就会自动在每个页面上运行。
是否有一个用于布局页面的控制器允许我做同样的事情?
我怎样才能让它在布局页面的每次调用中都能正常工作,而无需返回任何内容?
编辑:按照@Sebastian 的建议,我现在将此代码添加到部分视图中,从return View() 中删除CT.Models.RssReader.GetRssFeed() 并将其包含在我的布局文件中:
@Html.Partial("_MyPartialView")
这个局部视图中的代码是:
<ul>
@foreach (var item in Model)
{
<li>
<a href="@item.Link" target="_blank">@item.Title</a>
</li>
}
</ul>
但是,我没有收到运行时错误:
对象引用未设置为对象的实例。
@foreach (var item in Model)在线出错
【问题讨论】:
标签: asp.net asp.net-mvc-3 razor