您可以創建自己的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