0

我在审核和一致性问题,当涉及到某些视图中的客户端验证错误。该视图由多个(子)部分视图组成,基本上是在许多地方使用MVC /剃刀的Html.Textbox()Html.TextBoxFor()的表单。在一些局部视图中,我需要输入不是强类型的,因此只有TextBox(),在这些情况下,验证不会触发输入框的客户端样式。MVC Html.TextBox(不适用)客户端验证样式

我知道ModelState无效,并且Html.ValidationSummary()显示了来自由TextBox()TextBoxFor()触发的验证错误的正确错误消息。然而,只有TextBoxFor()才能获得该类:“输入验证错误”

问题:如何在发生错误时将我的TextBox()的红色变为红色? (简单的说)。我认为有一个缺少JQuery验证触发的值或属性。

代码:

作品:@Html.TextBoxFor(x => x.Owner, new { @class = "form-control" })

并不:@Html.TextBox(name, Model.Name, new { @class = "form-control" })

HTML输出

作品:<input class="input-validation-error form-control" data-val="true" data-val-required="Input is required." id="Owner" name="Owner" type="text" value="">

并不:<input class="form-control" id="Applicants_1__Name" name="Applicants[1].Name" type="text" value="">

+0

重置你试图添加数据-VAL属性到TextBox代码例如 @ Html.TextBox(name,Model.Name,new {@class =“form-control”,data-val =“true”,data-val-required =“需要输入”}) – Whiplash450 2015-02-05 15:59:41

+0

是的,除了“ data-val =“true”“,带连字符,导致无法解析符号,但”data_val =“true”,data_val_required =“Input is required”也不起作用 – skepnaden 2015-02-05 16:09:49

+0

data-val- *属性为因为'name'的值不是你模型中的一个属性,所以它不会被读取,所以它们不会被添加!使用强类型助手(如果你认为你不能,那么你做错了) – 2015-02-05 21:57:53

回答

0

就我个人而言,我只是在jquery中进行验证,然后你可以自定义任何你需要的。

然后你可以设置输入文本框的css容易变红;

$("#myInput").css("border", "1px solid red"); 

和使用

$("#myInput").css("border", "none") 
+0

我已经有一个20 +输入的表单,完全验证服务器端和所有的错误消息通过。TextBoxFor()获得样式,而其他人则没有。当声明两个禁用客户端样式的触发器时,只需要知道本质区别。 – skepnaden 2015-02-05 16:22:18

+0

好的。只是出于兴趣,你不得不使用TextBox而不是TextBoxFor ..的原因是什么? – Whiplash450 2015-02-05 16:31:41

+0

不能强制键入,因为它有一个与之绑定的唯一标识符。我需要在具有相同输入类型的几个子元素/对象之间进行分离,因此在上面的代码中呈现var“name”:id =“Applicants_1__Name”name =“Applicants [1] .Name – skepnaden 2015-02-05 16:44:43