私は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
は ブール属性 であり、引用します。
要素のブール属性の存在は真の値を表し、属性の不在は偽の値を表します。属性が存在する場合、その値は、空の文字列か、属性の正規名と大文字と小文字を区別しない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'.