54

我正在寻找创建一个引导样式的文本框,具体来说,基于下面的确切示例:

<input class="span3" type="email" required>

这是我到目前为止所拥有的:

@Html.TextBox("CustomerEmail", null, new { @class = "input-xlarge", type = "email", required = "required" })

但是,required = "required"显然不只是返回required

所以,我的问题是,在使用 Html.Textbox 时,有什么方法可以强制它返回所需的,就像上面的第一个示例一样?

4

4 回答 4

78

我认为你应该这样使用

 @Html.TextBoxFor(model => model.Name, new { @class = "text", type = "email", required = "required" })

我想这会对你有所帮助。

于 2013-01-11T11:20:38.057 回答
20

尝试

new { required = string.Empty}

顺便说一句,根据 W3C 文档,required是一个布尔属性,我引用:

元素上存在布尔属性表示真值,不存在该属性表示假值。如果存在该属性,则其值必须是空字符串或与属性的规范名称匹配的不区分大小写的 ASCII 值,并且没有前导或尾随空格。

所以

required
required="required"
required=""

所有的意思都是一样的。

于 2014-03-12T00:30:59.293 回答
2

您似乎对文本框应用了不同的类:input-xlarge,而在您想要的标记中,它被称为span3.

所以:

@Html.TextBox(
    "CustomerEmail", 
    null, 
    new { 
        @class = "span3", 
        type = "email", 
        required = "required" 
    }
)

就所需部分而言,这里的正确语法是required="required",否则您只会得到损坏的 HTML。

于 2013-01-11T11:23:19.633 回答
1

我注意到你也可以使用。

required="true"

有趣的是,无论如何,您都会在 Visual Studio 2015 中收到警告消息。我想知道这是否是需要更新的问题。

警告信息:

Severity    Code    Description Project File    Line    Suppression State
Message     Validation (ASP.Net): Attribute 'required' is not a valid attribute of element 'TextBox'.
于 2016-04-12T21:12:29.543 回答