如何覆盖EditorFor布局?例如,如果我想在编辑器字段之前或之后渲染一些文本。
答案 0 :(得分:0)
以下是在EditorFor之前和之后添加一些文本的代码示例。
步骤1:使用特定的DataType定义模型类中的字段,其中包含逻辑探测自定义名称,如SmallText,CustomName等。在此示例中,我只使用了“MyTypeOfField”。
[Required(ErrorMessage = "Field_Value code is a required field.")]
[MaxLength(100)]
[Display(Name = "Field Display Name")]
[DataType("MyTypeOfField")]
public string MyField { get; set; }
步骤2:在文件夹:Views / Shared / EditorTemplates中创建“MyTypeOfField.cshtml”,代码如下。如果EditorTemplates文件夹不存在,请创建它。
@inherits System.Web.Mvc.WebViewPage<string>
@string.Format("{0, -10}","XXXXXXXXXX") @Html.TextBox("", "", new { style = "width:30px; text-align:right;" }) @string.Format("{0, -10}","1234567890")
希望这有帮助!
答案 1 :(得分:-1)
EditorFor
是HtmlHelper
类定义的扩展方法。如果要覆盖它,则必须继承HtmlHelper
。根据{{3}}重写扩展方法是一个坏主意。即使您决定采用这种方式,您如何使mvc使用子类HtmlHelper
而不是默认值。您最好的选择可能是重载EditorFor
方法并在视图中使用它而不是默认方法。