私は私のASP.NET MVC3カミソリアプリケーションで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リーダーコードをマスターページコードの後ろに追加するだけで、すべてのページで自動的に動作します。
同じことをするためのレイアウトページのコントローラはありますか?
何も返さずに、レイアウトページのすべての呼び出しでこれを動作させるにはどうすればよいですか?
EDIT:はセバスチャンのアドバイス、@の後、私は今、部分図にこのコードを追加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>
しかし、私は、ランタイムエラーを取得していないよ。
Object reference not set to an instance of an object.
それはあなたが部分図を作成し、そこに機能を追加する必要がライン@foreach (var item in Model)
乾杯を作ることのような...
ホープのような
この助けて、もう一つのエラーが出てきます。私の質問の編集を参照してください – Curt
私の答えを更新しました。上に見てください –
ああ私の貧しい大会の命名は、私は部分的なビューの下線を使用し、それをコピーしたチュートリアルを見た。私は '@model IEnumerable'を部分ビューの一番上に表示していますが、私はまだ同じエラーを受けています。 –
Curt