Html.TextBoxFor中的必需值

时间:2014-01-17 06:28:33

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

我需要像这样要求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. 我该如何解决?

3 个答案:

答案 0 :(得分:12)

使用

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

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

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

并设置代码Textbox中的值。您可以在控制器中设置它。

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>

试一试: -

答案 1 :(得分:9)

我不知道为什么,但当我删除=@

之间的空格时
<td>@Html.TextBoxFor(m =>(m.Code), new { @Value =@Model.Code, @required  = "required"})</td>

它有效

答案 2 :(得分:1)

你不需要parens

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

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