Html.TextBoxFor 中的必需值

Posted

技术标签:

【中文标题】Html.TextBoxFor 中的必需值【英文标题】:Required value in Html.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】:

你不需要括号

@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>

有效

【讨论】:

以上是关于Html.TextBoxFor 中的必需值的主要内容,如果未能解决你的问题,请参考以下文章

使用 HTML.TextBoxFor 循环遍历模型中的项目 [重复]

选择查询中的一个或多个必需参数没有给出值

在条件下隐藏 Html.TextBoxFor

如何使用输入类型 = 日期的 Html.TextBoxFor? [复制]

MVC 和 Razor 中 Html.TextboxFor 和 Html.EditorFor 的区别

Html5 data-* with asp.net mvc TextboxFor html属性