2009-08-13 7 views
2

Я разрабатываю небольшое приложение в ASP.NET MVC.Правильное использование строго типизированных частичных представлений?

В этом приложении много «фрагментов HTML», которые используются много раз с небольшой дисперсией.

Для этих изделий я использую строго типизированные частичные виды.

Вопрос: Это правильный способ повторного использования кода в слое «Вид»? Есть ли какая-то неуловичность, чтобы использовать частичные представления?

Большое спасибо.

ответ

3

Лично я считаю, что это отличный способ уменьшить дублирование в вашем HTML и делать это все время. Просто избегайте делать с ними что-то, что вы должны делать через вложенные мастер-страницы и так далее.

Как правило, у вас не должно быть вложенных частичных представлений.

+0

Данг, другой человек избил меня на несколько секунд. – Martin

0

Я думаю, что это хорошо. Особенно, если вы хотите, чтобы ваша страница differents использовала одно и то же поведение: например, я помещал свой пейджер mvccontrib в общую папку, поэтому все мои пейджеры выглядят одинаково.

У меня есть только одно неудобство с частичным представлением на данный момент: при обновлении в ajax части моего контейнера с частичным представлением javascript этого частичного представления не всегда учитывается.

2

Я нашел строго типизированные виды, будь то «полные» или частичные, чтобы быть очень полезными. В противном случае вы застряли бы с большим количеством кода ViewData, который не очень и сложно отлаживать.

Если вы окажетесь прыгать через много обручи, чтобы получить модели, чтобы работать должным образом, рассмотреть обертывание меньшие в большем типа «контекст» объект:

public class ViewModelA { 
    public string Name { get; set; } 
} 

public class ViewModelB { 
    public int Id { get; set; } 
} 

public class ViewModelContext { 
    public ViewModelA { get; set; } 
    public ViewModelB { get; set; } 
} 

И ваш Посмотреть взять ViewModelContext как тип. Это позволит вам быстро получить доступ ко всем другим моделям.

1

Обычно я накладываю много общего кода в MasterPage. Я использую частичные представления для более крупных, автономных единиц функциональности. Например, сетка, которая повторно используется на многих, но не на всех страницах, или на элементе управления заголовком. Иногда это комбинация двух. Например, мои основные, неаутентифицированные пункты меню отображаются в значении MasterPage, но я использую частичное представление для моих аутентифицированных пунктов меню, которое содержит логику для определения того, какие элементы отображаются в зависимости от роли пользователя.

Другое, что вы можете подумать о небольших фрагментах HTML, это расширения HtmlHelper. Я считаю, что это хороший способ настроить определенные типы элементов HTML. Например, у меня есть расширение, которое добавит «кнопку», которая будет работать с включенным javascript (отображается как привязка) или отключена (отображает кнопку внутри тега noscript). Это все-таки лучше, чем расширение, на мой взгляд, в любом случае, чем частичное представление, поскольку это не «взгляд» на что-либо.

Смежные вопросы