私はいくつかのビューでレンダリングするユーザー コントロールを持っています。ユーザーコントロールにビューデータを表示したいのですが、ビューデータはコントローラーメソッドに入力する必要があるため、ユーザーコントロールをレンダリングする各ビューの各コントローラーメソッドにビューデータを入力する必要があります。簡単な解決策はありますか?
1 に答える
2
そのコントロール用のコントローラーを次のように用意します
メニューコントローラー
アクションメソッドで
RenderMenu()
{
**do your work to get the data here and preferrably strong type it**
return PartialView("NameOfYourAscxFile", yourObject);
}
コントロールに RenderMenu.ascx という名前を付けると、次のことができます。
RenderMenu()
{
**do your work to get the data here and preferrably strong type it**
return PartialView(yourObject);
}
または、Menu.ascx という名前を付けて、このようなメニュー メソッドを持つ方が理にかなっているかもしれません。
Menu()
{
**do your work to get the data here and preferrably strong type it**
Menu myMenuObject = Repository.GetMenu(...);
return PartialView(myMenuObject);
}
Menu.ascx の開始は次のようになります
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<mynamespace.Menu>" %>
ビューで使用するには、次のようにします。
<% Html.RenderAction("Menu", "Menu"); %>
HTH
于 2010-04-18T12:46:31.177 に答える