2

左側に修正メニューがあるページがあります。この部分ビューには、メイン ページ (コンテンツ) とは異なるモデルが必要です。

マスターページ/レイアウト:

<body>
<div id="IndexMenu">
    <div id="IndexMenuInner">@RenderPage("~/Views/Admin/part/_Menu.cshtml", new { LocationAdminModelCollection = new Model; })</div>
</div>
<div id="BodyContent">
    @RenderBody()
</div>

開始時に呼び出されたインデックス/コンテンツ ページ:

@model Survey.WebApplication.Models.ChecklistDetailsModel

@{
    ViewBag.Title = "Survey Administration";
    Layout = "~/Views/Admin/_Layout.cshtml";
}

<link href="@Url.Content("~/Content/Admin/Menu.css")" rel="stylesheet" type="text/css" />

<div id="IndexSubMenu">sub_Menu</div>

<div>
<div id="IndexMenuInner"></div>
</div>

マイメニュー:

@model Survey.WebApplication.Models.LocationAdminModelCollection

@{
    Layout = null;
}

<div class="menuLocation">

</div>

私はこれを行うことができますか?

4

1 に答える 1

4

Html.RenderAction を使用して、コントローラーでアクションをレンダリングします。そのアクションでは、メニューに必要なモデルを作成し、Menu.cshtml 部分ビューを PartialViewResult として渡すだけです。

だから代わりに@RenderPage("~/Views/Admin/part/_Menu.cshtml", new { LocationAdminModelCollection = new Model; })

あなたがするだろう:

@{ Html.RenderAction("Menu", "Site"); }

Site は SiteController で、Menu は次のようなものです。

public ActionResult Menu()
{
    return PartialView("Menu", new { LocationAdminModelCollection = new Model });
}

免責事項

コードはテストされていません:)

于 2011-04-15T11:49:17.690 に答える