Я использовал следующий учебник, чтобы помочь мне создать программу чтения RSS в моем приложении ASP.NET MVC3 Razor:
http://weblogs.asp.net/jalpeshpvadgama/archive/2011/08/17/creating-basic-rss-reader-in-asp-net-mvc-3.aspx
Однако, в отличие от примера учебника, я хочу 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 в код моей главной страницы, и он автоматически работал бы на каждой странице.
Есть ли контроллер для страниц макета, который позволяет мне делать то же самое?
Как я могу заставить это работать при каждом вызове страницы макета, не возвращая ничего?
РЕДАКТИРОВАТЬ: Следуя совету @ Себастьяна, я теперь добавил этот код в частичное представление, удалил CT.Models.RssReader.GetRssFeed()
из return View()
и включил его в файл макета:
@Html.Partial("_MyPartialView")
Код в этой части View is:
<ul>
@foreach (var item in Model)
{
<li>
<a href="@item.Link" target="_blank">@item.Title</a>
</li>
}
</ul>
Однако я не получаю ошибку времени выполнения:
Ссылка на объект не установлена на экземпляр объекта.
Это ошибка на линии @foreach (var item in Model)