あなたのマスターページにHtml.RenderPartialメソッドを使用する必要があります。
マスターページを使用するビューを呼び出すアクションで、MainMenuSortListDisplayおよびSubMenuSortListDisplayビューのデータキーを設定する必要があります。
マスターの使用では
この
<% Html.RenderPartial("~/Views/Shared/Menu.ascx");
パスは、コントロールのフォルダへのアプリの相対パスにする必要があります。通常これらはSharedの下にあります。共有フォルダの下に必要な構造を作成することができます。
この手法を強化するには、強く型付けされた部分を使用します。質問では、2つのジェネリックコレクションを持つ新しいクラス(MenuModel)をプロパティとして作成し、アプリケーションのmodelsフォルダに配置します。次に、モデルのコンストラクタで、リストに値を設定するメソッドを呼び出します。
public class MenuModel
{
public IEnumerable<MainMenuSort> OuterList {get; set;}
public IEnumerable<SubMEnuSort> InnerList {get; set;}
public MenuModel()
{
VoidThatFillsTheInnerAndOuterList();
}
これは、このキーを設定した
public ActionResult ShowAForm()
{
ViewData["MenuPartialData"] = new MenuModel();
return View();
}
、あなたのマスターページが、この
<% Html.RenderPartial(
"~/View/Shared/Menu.ascx",
(MenuModel)ViewData["MenuPartialData"]); %>
このように、れるrenderPartialのオーバーロードを使用することができ、あなたのコントローラでこれを行うことができることを意味しますあなたのpartialがMenuModelクラスに強く型付けされていると仮定します。次に、部分的にあなたが少し
あなたのコードを書き換えたモデルを使用することができます
<% foreach (MainMenuSort mainMenuSort in Model.OuterList) { %>
<li><%= Html.Encode(mainMenuSort.MainMenuId.MainMenuName)%></li>
<% foreach (SubMenuSort subMenuSort in Model.InnerList) {%>
<%if (mainMenuSort.MainMenuId.Id == subMenuSort.SubMenuId.MainMenu.Id)
{ %>
<li><%= Html.Encode(subMenuSort.SubMenuId.SubMenuName)%></li>
<%} %>
<%} %>
<%}%>
希望
ありがとうございます。単にASP.NET MVCを学び、<%Html.RenderPartial( "〜/ Views/Shared/Menu.ascx");%>をsite.masterページに追加しましたが、あなたが意味することを理解していません。マスターページを使用するビューを呼び出すアクションで、MainMenuSortListDisplayおよびSubMenuSortListDisplayビューのデータキーを設定します。「 – Ros
あなたのコントローラクラス内のActionResultメソッドを使用してページを呼び出します。この方法では、あなたがのViewDataキーが ViewDataを例えば設定する必要がありますあなたがSTIL申し訳 –
バックシャウト、まだメニューを表示することができません。サンプルコードへのリンクを投稿できますか?ありがとう。 –