Могу ли я использовать более одного шаблона редактора для одного и того же класса в MVC3? - PullRequest
4 голосов
/ 19 ноября 2011

У меня есть, например, класс:

public class Book
{
public int BookId { get; set; }
public string BookName { get; set; }
public string Description { get; set; }
}

и шаблон редактора:

@model MySimpleEditorTemplate.Models.Book

@Html.DisplayFor(p => p.BookId)     @Html.EditorFor(p => p.BookId)
@Html.DisplayFor(p => p.BookName)   @Html.EditorFor(p => p.BookName)
@Html.DisplayFor(p => p.Description)    @Html.EditorFor(p => p.Description)

Я могу использовать шаблон редактора следующим образом:

@Html.EditorFor(model => model.Book) 

Однако что, если я хочу иметь два шаблона редактора или два шаблона отображения и использовать один или другой для одного класса?Это возможно?

Ответы [ 2 ]

13 голосов
/ 19 ноября 2011

ДА, у вас может быть «по умолчанию», с именем Book.cshtml ... и этот срабатывает каждый раз, когда вы используете EditorFor.

. У вас может быть другой шаблон редактора для Book.скажем, назвав его BookTheOtherWay.cshtml, и вы разместите свой «другой вид редактора».Теперь при использовании EditorFor вам просто нужно передать имя шаблона в качестве другого параметра в шаблоне EditorFor.

@Html.EditorFor(model => model.MyBook, "BookTheOtherWay" )

Это работает одинаково для DisplayTemplates и DisplayFor помощник.

@Html.DisplayFor(model => model.MyBook, "BookTheOtherWay" )
4 голосов
/ 19 ноября 2011

Да

public static MvcHtmlString EditorFor<TModel, TValue>(
    this HtmlHelper<TModel> html,
    Expression<Func<TModel, TValue>> expression,
    string templateName
)

http://msdn.microsoft.com/en-us/library/ff406506.aspx

"Если шаблон, имя которого соответствует параметру templateName, найден в папке EditorTemplates контроллера, этот шаблон используется для визуализации выражения. Если шаблон не найден в папке EditorTemplates контроллера, папка Views \ Shared \ EditorTemplates выполняется поиск шаблона, соответствующего имени параметра templateName. Если шаблон не найден, используется шаблон по умолчанию. "

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