在Html.Textbox上设置必需的属性

我正在寻找创build一个Bootstrap风格的文本框,具体来说,基于下面的确切例子:

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

以下是我到目前为止:

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

但是, required = "required"显然不会仅仅required返回。

所以,我的问题是,当使用Html.Textbox时,有没有什么办法可以像上面第一个例子那样强制它返回?

我想你应该这样使用

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

我认为这会帮助你。

尝试

 new { required = string.Empty} 

另外,根据W3C文档, required是一个布尔属性 ,我引用:

元素上布尔属性的存在表示真值,缺less属性表示假值。 如果该属性存在,则其值必须是空string,或者是该属性规范名称的ASCII不区分大小写的匹配值,且不包含前导或尾随空格。

因此

 required required="required" required="" 

都意味着同样的事情。

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

所以:

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

至于所需的部分,这里正确的语法是required="required" ,否则你只是得到破碎的HTML。

我注意到你也可以使用。

 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'.