У меня есть приложение MVC3, основанное на макете по умолчанию из VS 2010, которое я изменил, чтобы выглядеть как на изображении ниже
Область подменю определена в _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 });
Все мои контроллеры сущностей, запущенные из меню, определены стандартно в Контроллерах и представлениях в Представлениях.
Мне нужно изменить приложение на использование макета, как показано ниже
Когда пользователи нажимают Entities, приложение должно перейти к myapp / entity / или myapp / entity / index, и оно должно открыть представление в основной рабочей области, которое будет выглядеть ниже
Затем, когда пользователи нажимают на правые подменю, URL-адрес должен выглядеть как myapp / entity / entity1 / index, myapp / entity / entity1 / edit / 1 и т. Д. (Точно так же, как сейчас, но на странице под сущностями)
Я определил контроллер Entities как
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>
Я не хочу вносить изменения в контроллеры или представления сущностей (или минимальные изменения, если это абсолютно необходимо, потому что их много). Могу ли я как-то назначить эту область в качестве основного тела, находясь в области действия сущностей? И если пользователь нажмет на верхнюю часть Home / About, он "выгрузит" EntitiesView из _layout.cshtml?
Не уверен, что мой вопрос очень ясен, но я надеюсь, что кто-то поймет, что я преследую.
Спасибо