Вы можете создать свои собственные html-помощники в качестве методов расширения для HtmlHelper
или HtmlHelper<TModel>
. Просто добавьте метод расширения, как показано ниже:
public static MvcHtmlString MyEditorFor<TModel, TProperty>(
this HtmlHelper<TModel> htmlHelper,
Expression<Func<TModel, TProperty>> expression)
{
}
Конечно, вы можете добавить дополнительные параметры по мере необходимости. Внутри этого метода доступ ко всем методам htmlHelper
. Возврат обычный EditorFor
, например:
public static MvcHtmlString MyEditorFor<TModel, TProperty>(
this HtmlHelper<TModel> htmlHelper,
Expression<Func<TModel, TProperty>> expression)
{
return htmlHelper.EditorFor(expression);
}
Или вы можете создать свой собственный элемент (или их сочетание), как вам нужно:
public static MvcHtmlString MyEditorFor<TModel, TProperty>(
this HtmlHelper<TModel> htmlHelper,
Expression<Func<TModel, TProperty>> expression)
{
TagBuilder div = new TagBuilder("div");
div.AddCssClass("some-css");
MvcHtmlString editor = htmlHelper.TextBoxFor(expression);
div.InnerHtml = editor.ToHtmlString();
return new MvcHtmlString(div.ToString());
}
Подробнее о TagBuilder
here.
Возможный дубликат [В MVC можно переопределить шаблон редактора] (http://stackoverflow.com/questions/11599204/in-mvc-is-it-possible-to-override-an-editor-template) –
Не уверен, что вы подразумеваете под _override_, но вы можете создать свои собственные шаблоны дисплея и редактора, которые будут использоваться этими методами для рендеринга, что бы вы хотели. –
Я не согласен, он не показывает никакого решения по тому, что мне нужно в этом вопросе. Я не хочу предлагать другой шаблон. Я хочу поставить логику в этом вопросе, предлагая добавить другой именованный шаблон. – dagda1