2012-11-15 43 views
3

我的文本框,看起來像這樣的時刻,剃刀屬性,而不使用HTML值

@Html.TextBox("Something", "", new 
     {       
      type = "text", 
      min = 1, 
      max = 60, 
      data_validation_integer_regex = @ValidationPatterns.Integer, 
      data_validation_integer_message = @ValidationPatterns.IntegerMessage, 
      data_bind = "value: observables.Something" 
     }) 

這使得作爲

<input data-bind="value: observables.Something" 
      data-validation-integer-message="Some message" 
      data-validation-integer-regex="^[1-9]\d*$" 
      id="Something" 
      max="60" 
      min="1" 
      name="Something" 
      type="text" 
      value=""> 

的驗證庫,我們使用jqBootstrapValidation

我我喜歡使我的一些領域需要,以及如何使用這個庫,我需要添加一個標籤到輸入字段,就像這樣

<input id="Something" ... required >

剃刀不允許我這樣做,雖然,因爲它似乎想以這種格式的所有參數

property="something"property=100

是我恢復到標準的HTML標記,如果唯一的選擇我想讓我的領域需要?

回答

3

如果您使用一個空字符串屬性(required=""),那麼Razor會將其渲染爲無價值的屬性。也就是說,

@Html.TextBox("name", "value", new { attr="something", required="" }) 

呈現爲:

<input type='text' name='name' id='id' value='value' attr='something' required /> 
+1

...我沒想到的嘗試是什麼原因? :/ –

+3

使用MVC 5,這不起作用。在匿名對象中'required =「」'和required =(string)null'將會呈現'required =「」'。 – GSerg