Какой элемент я должен создать в ASP.NET MVC, если я хочу разбить представление на меньшие вложенные представления? - PullRequest
2 голосов
/ 12 июня 2009

У меня есть приложение ASP.NET MVC, которое я создаю и использую главную страницу. На этой главной странице я бы хотел еще больше разобраться, создав отдельный файл для «Tabs», «Header» и «Footer».

Какой вид я должен создать, чтобы инкапсулировать эти вещи, чтобы помочь удалить беспорядок с моей мастер-страницы? Кроме того, как я могу ссылаться на них в правильном месте в моем главном представлении, чтобы я мог правильно их отобразить?

Существует несколько различных типов опций, доступных для создания представлений / представлений контента / пользовательских элементов управления и т. Д. Для MVC, и мне нужно знать, какой из них подходит для этой задачи и как его использовать.

Ответы [ 2 ]

3 голосов
/ 13 июня 2009

Если вы используете WebForms Views, у вас есть 3 варианта:

Частичные представления / пользовательские элементы управления :

Использование Html.RenderPartial (я думаю, что это лучший метод для создания вкладок в ASP.NET MVC 1.0 на сегодняшний день). Ваша разметка будет выглядеть как:

<% Html.RenderPartial(ViewData["TabName"], ViewData["TabData"]); %>

Вложенные мастер-страницы :

  • Site.master с ContentPlaceHolders для содержимого, верхний колонтитул, боковые панели, нижний колонтитул ...
  • Tabs.master с ContentPlaceHolder для вкладок в <asp:Content ContentPlaceHolderID="Content" >
  • Много Tab1.aspx ... TabN.aspx для вкладок.

HtmlHelper extensions :

Вы можете использовать (я думаю, что это неправильный способ создания вкладок) что-то вроде этого:

<% if(ViewData["TabName"] = "Tab1") { %>
    <%= Html.Tab1() %>
<% } else if(ViewData["TabName"] = "Tab2") { %>
    <%= Html.Tab2() %>
<% } else ...
... 
...
...
0 голосов
/ 12 июня 2009

Вы уже рассматривали пользовательские контроли / частичные просмотры ??

Редактировать: если это просто html, вы можете писать html-файлы и рендерить, используя вспомогательные методы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...