【问题标题】:Required value in Html.TextBoxForHtml.TextBoxFor 中的必需值
【发布时间】:2014-02-06 09:24:24
【问题描述】:

我需要像这样输入TextBox 的值:

<td>@Html.TextBoxFor(m =>(m.Code), new { @required  = "required"})</td>

它有效。但是如果我将默认值设置为TextBox

<td>@Html.TextBoxFor(m =>(m.Code), new { @Value = @Model.Code, @required  = "required"})</td>

尽管生成了此 Html 代码,但仍接受空值

<td><input id="Code" name="Code" required="required" type="text" value="fff       "></td>
  1. 这个问题的根源是什么?
  2. 我该如何解决?

【问题讨论】:

    标签: c# asp.net css asp.net-mvc-4 html-helper


    【解决方案1】:

    你不需要括号

    @Html.TextBoxFor(m => m.Code, new { @class = "txtCode" })
    

    如果您在控制器端设置代码,则值将放在文本框中

    【讨论】:

      【解决方案2】:

      使用

      @Html.ValidationMessageFor(m => m.Code)
      

      用于验证代码属性。代码属性应该像这样定义-

       [Required]
       public string Code{ get; set; }
      

      用于在代码文本框中设置值。您可以像这样在控制器中设置它。

      Model.Code="fffff";
      

      并在视图上像这样使用-

      <td>@Html.TextBoxFor(m =>(m.Code), new { @Value = @Model.Code)</td>
       @Html.ValidationMessageFor(m => m.Code)
      

      是的,不要忘记包含验证Js,即

       <script src="/Scripts/jquery.validate.unobtrusive.js"></script>
          <script src="/Scripts/jquery.validate.unobtrusive.min.js"></script>
      

      试试看:-

      【讨论】:

      • 是的,你的验证应该在你的模型中,就像在这篇文章中一样。如果你在视图上这样做会变得一团糟,尤其是当你想要自定义错误消息时。
      • 如何动态而不是提交?
      【解决方案3】:

      我不知道为什么,但是当我删除 = 和 @ 之间的空格时

      <td>@Html.TextBoxFor(m =>(m.Code), new { @Value =@Model.Code, @required  = "required"})</td>
      

      有效

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-08-26
        • 1970-01-01
        • 1970-01-01
        • 2014-05-05
        • 1970-01-01
        • 1970-01-01
        • 2023-02-07
        • 1970-01-01
        相关资源
        最近更新 更多