我期待建立一个引导风格的文本框,具体而言,基于下面的具体例子:
<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
是一个布尔属性 ,我引用:
一个元件上的布尔属性的存在表示真实值,并且不存在属性的表示假值。 如果存在该属性,其值必须是空字符串,或者是属性的规范名称的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'.