私は最近、ASP.NET - MVC 4を使用してWebサイトを構築し始めました。部分ビューのコントローラASP.NET MVC
私はすべてのページに表示したいデータがあり、部分的なビューがこれに最適であると理解しています。
部分ビューのデータを常に提供するコントローラを作成することはできますか?または、どうすればこの問題を解決できますか?
私は最近、ASP.NET - MVC 4を使用してWebサイトを構築し始めました。部分ビューのコントローラASP.NET MVC
私はすべてのページに表示したいデータがあり、部分的なビューがこれに最適であると理解しています。
部分ビューのデータを常に提供するコントローラを作成することはできますか?または、どうすればこの問題を解決できますか?
これは、子の動作と呼ばれています。
Html.Action(...)
を呼び出します。
パーシャルビューのコントローラアクションを作成することができます。あなたはすべてのページにいくつかのことをinlcludingを探しているなら、あなたはあなたの_Layout.cshtmlページ
にあなたがこの
public ActionResult UserInfo()
{
UserViewModel objVm=GetUserInf();
// do some stuff
return View("PartialUserInfo",objVM);
}
のような部分的なビューを返し、通常のアクションメソッドを作成することができることを追加することを考える必要がありますこれはあなたのコントローラ名がユーザーであると仮定すると、(あなたのViews/Users
フォルダに存在する名前を持つ「PartialUserInfo
」のビューを返します。あなたが見る方法
returnView("Partial/UserInfo",objVm);
を呼び出すときに、あなたがそれを言及することができます別の場所でのビューを指定する場合0
これはあなたのViews/Users/Partial
フォルダに "UserInfo"というビューを返します。あなたの部分図で
(あなたは1を持っている場合)、あなたはdointことにより、通常のレイアウトを無効にすることができ、この
@model UserViewModel
@{
Layout=null;
}
一つの方法は、親ビュー(すべてのパーシャルをホスティング1)のためのモデルを持っていることですそれは、そのモデルの性質として部分図のモデルが含まれてい
EX:
MainModel.ModelForPArtialView1
MainModel.ModelForPArtialView2
MainModel.ModelForPArtialView3
あなたは親ビューでこれを行うことができますこの方法
@Html.Partial("PartialView1",MainModel.ModelForPArtialView1)
@Html.Partial("PartialView2",MainModel.ModelForPArtialView2)
@Html.Partial("PartialView3",MainModel.ModelForPArtialView3)
解決方法は、ビュー全体でコンテンツが変更されるかどうかによっても異なります。部分ビューのコンテンツはすべての親ビューで正確に同じですか? – TGH
余分なリクエストが生成されますか? – johan
@ johan:いいえ – SLaks