更改@ Html.EditorFor的类/自定义模板| ASP .NET MVC 4

时间:2018-07-17 08:00:00

标签: c# css asp.net-mvc editorfor

我想更改@ 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>

1 个答案:

答案 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")]在模型中是多余的,因为默认的显示名称是变量名称本身。