自定义EditorFor或任何XXXXFor

rid*_*nsb 5 asp.net-mvc mvc-editor-templates razor display-templates asp.net-mvc-4

每当我使用@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>
Run Code Online (Sandbox Code Playgroud)

我想自定义这个HTML的格式!

但要注意!!!!!

  1. 我知道这个功能 - > @Html.EditorForModel("MY-TEMPLATE")
  2. 我知道这个功能 - > @Html.EditorFor(p => p.MY-PROPERTY, "MY-TEMPLATE")
  3. 我知道这个功能 - > Views\{CONTROLLER}\EditorTemplates\{CLASSNAME\TYPE}
  4. 我知道这个功能 - > 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>
Run Code Online (Sandbox Code Playgroud)

arc*_*hil 2

您可以在文件夹中创建Object.cshtml模板,如果找不到更具体的模板(例如名为 的模板) ,则将使用该模板Views\Shared\EditorTemplates\@Html.EditorForModel()classname.cshtml

您可以进一步阅读Brad Wilson 的自定义对象模板