Настройте EditorFor или любой XXXXFor
Всякий раз, когда я использую @Html.EditorForModel()
следующий стандартный шаблон отображается в asp.net mvc
По умолчанию в шаблоне Asp.net MVC
<div class="editor-label">
<label for="[MY-PROPERTY]">MY-PROPERTYNAME</label>
</div>
<div class="editor-field">
<input id="[MY-PROPERTYID]" name="MY-PROPERTYNAME" type="text" value="">
<span class="field-validation-valid" data-valmsg-for="MY-PROPERTYNAME" data-valmsg-replace="true"></span>
</div>
Я хотел бы настроить формат этого HTML!
Но внимание!!!!!
- Я знаю эту функцию ->
@Html.EditorForModel("MY-TEMPLATE")
- Я знаю эту функцию ->
@Html.EditorFor(p => p.MY-PROPERTY, "MY-TEMPLATE")
- Я знаю эту функцию ->
Views\{CONTROLLER}\EditorTemplates\{CLASSNAME\TYPE}
- Я знаю эту функцию ->
Views\Shared\EditorTemplates\{CLASSNAME\TYPE}
Моя цель - изменить шаблон по умолчанию для всего проекта!
Без необходимости путешествовать весь проект для этого!
- Когда используешь
@Html.EditorForModel()
, каждое свойство будет генерировать индивидуальный HTML!
Новый шаблон
Новый шаблон будет примерно таким:
<div class="control-group">
@Html.LabelFor(p => p.PROPERTY, new { @class = "control-label" })
<div class="controls">
@Html.EditorFor(p => p.PROPERTY)
<span class="help-inline"></span>
</div>
</div>
3 ответа
Вы могли бы создать Object.cshtml
шаблон к вашему Views\Shared\EditorTemplates\
папка и @Html.EditorForModel()
будет использовать этот шаблон, если он не может найти более конкретный (например, шаблон с именем classname.cshtml
)
Вы могли бы далее прочитать Пользовательские Шаблоны Объекта Брэдом Уилсоном
Зачем переписывать ASP.NET MVC? Не слишком ли большая задача воссоздать то, что Microsoft (с их возможностями массового производства) создавала в течение последних 5 лет?
Я предлагаю (очевидно, далеко не единственный способ жить), чтобы определить как можно больше DisplayTemplates
а также EditorTemplates
как вам нравится для типов вам нужно и покончим с этим.
Каркас по определению является расширяемым. То, что вы пытаетесь сделать, это заменить один из главных полюсов в нем. И я не знаю, стоит ли это того. - Просто мнение.
Надеюсь это поможет.
Я пытался сделать то же самое. Каким-то образом переписать или переопределить методы Editor, EditorFor или EditorForModel, потому что я хотел изменить вывод HTML в целом. Я нашел эту статью, которая может помочь: http://www.headcrash.us/blog/2011/09/custom-display-and-editor-templates-with-asp-net-mvc-3-razor/
Как сказал @archil. Вы можете написать свой собственный шаблон объекта, но важно то, что он, кажется, используется во всех случаях. Даже если у вас есть шаблон для определенного типа, этот шаблон используется в качестве "основного" шаблона.