我想更改@ Html.EditorFor字段的类/样式。我读了一些有关自定义模板的内容,但是我的项目中没有模板文件夹(Views / Shared / ONLY_FILES_HERE)。遗憾的是,我不正在使用MVC 5.1。
由于输入验证,我不要要使用TextBoxFor。
我该如何实现?
这是我的模特的片段:
public class CreateTableColumnModels
{
[RegularExpression(@"^[A-Za-z0-9]+$", ErrorMessage = "Use letters and numbers only please")]
[Display(Name = "Name")]
public string Name { get; set; }
我尝试过:
@model QlikViewStammdaten.Models.CreateTableColumnModels
<div>
@Html.EditorFor(x => Model.Name, new { @class = "form-control" })
</div>
答案 0 :(得分:1)
正如注释中已经提到的,最好将类添加到Html.TextBoxFor
而不是@Html.EditorFor
中。为什么?因为@Html.EditorFor
呈现了一个模板,并且该模板可能包含多个控件(现在您要向其中添加哪个控件?),请参见Adding a class to EditorFor
如果要使用数字类型,请添加@type = "number"
@Html.TextBoxFor(m => m.Name, new { @class = "form-control", @type = "number" })
注意:它不是x => Model.Name
而是m => m.Name
我确定您已经知道这一点,但是[Display(Name = "Name")]
在模型中是多余的,因为默认的显示名称是变量名称本身。