【问题标题】:Razor property without a html value没有 html 值的 Razor 属性
【发布时间】:2016-03-24 18:47:51
【问题描述】:

我的文本框现在看起来像这样,

 @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

我想让我的一些字段成为必需的,使用这个库的方法是,我需要像这样在输入字段中添加一个标签

&lt;input id="Something" ... required &gt;

Razor 不允许我这样做,因为它似乎需要这种格式的所有参数

property="something"property=100

如果我想让我的字段成为必填项,我唯一的选择是恢复为标准 html 标记吗?

【问题讨论】:

    标签: asp.net-mvc razor


    【解决方案1】:

    如果您使用具有空字符串 (required="") 的属性,则 Razor 会将其呈现为无值属性。也就是说,

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

    呈现为:

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

    【讨论】:

    • ...我没想过要这样做,为什么? ://
    • 对于 MVC 5,这不起作用。匿名对象中的required = ""required = (string)null 都将呈现required=""
    猜你喜欢
    • 1970-01-01
    • 2015-11-17
    • 1970-01-01
    • 1970-01-01
    • 2011-12-25
    • 1970-01-01
    • 2023-01-02
    • 2021-12-17
    相关资源
    最近更新 更多