0

私はいくつかのビューでレンダリングするユーザー コントロールを持っています。ユーザーコントロールにビューデータを表示したいのですが、ビューデータはコントローラーメソッドに入力する必要があるため、ユーザーコントロールをレンダリングする各ビューの各コントローラーメソッドにビューデータを入力する必要があります。簡単な解決策はありますか?

4

1 に答える 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 に答える