VS 2010 のデフォルト レイアウトに基づいて MVC3 アプリケーションを作成しましたが、これを下の画像のように変更しました
サブメニュー領域は、_layout.cshtml で次のように定義されています。
<div id="sidebar">
<h3>Entities</h3>
<p></p>
<ul>
@Html.Partial("_EntitiesMenu")
</ul>
</div>
<section id="main">
@RenderBody()
</section>
_EntitiesMenu には以下のエントリが含まれます
<li>@Html.ActionLink("Addresses", "Index", "Address")</li>
<li>@Html.ActionLink("Applications", "Index", "Application")</li>
次のように定義された単一の MapRoute があります。
routes.MapRoute("Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
{ controller = "Home", action = "Index", id = UrlParameter.Optional });
メニューから開始されたすべてのエンティティコントローラーは、コントローラーで標準で定義され、ビューでビューが定義されています。
私が必要とするのは、以下のようにレイアウトを使用するようにアプリを変更することです
ユーザーが [エンティティ] をクリックすると、アプリは myapp/entities/ または myapp/entities/index に移動し、メインの作業領域に次のようなビューが開きます。
次に、ユーザーが右のサブメニューをクリックすると、URL は myapp/entities/entity1/index、myapp/entities/entity1/edit/1 などのようになります (今とまったく同じですが、エンティティ ページの「下」です。
エンティティ コントローラーを次のように定義しました)。
public class EntitiesController : Controller
{
public ActionResult Index()
{ return View();}
}
そして、それは次のように見えます
<div id="workarea">
// here should became new Body region, to load all views called from the other controllers
// something like @RenderBody(), but this don't works
</div>
<div id="sidebar">
<h3>Entities</h3>
<ul>
@Html.Partial("_EntitiesMenu")
</ul>
</div>
エンティティ コントローラーやビューを変更する必要はありません (または、必要に応じて最小限の変更を行う必要があります。それらは多数あるためです)。エンティティのスコープの下で、どうにかしてその領域を本体として割り当てることはできますか? そして、ユーザーがトップのホーム/バージョン情報をクリックすると、_layout.cshtml から EntitiesView が「アンロード」されますか?
私の質問が非常に明確かどうかはわかりませんが、誰かが私が求めていることを理解してくれることを願っています.
ありがとうございました