有人可以提供一个很好的教程,说明如何以不引人注目的方式验证我的html字段, 但没有使用MVC助手。 它有可能吗?
我想保留简单的html并使用input type="text"
字段而不是mvc helpers <%= Html.TextBox("Name") %>
,但仍然使用模型验证..
public class Employee
{
[Required]
public string Name { get; set; }
}
还可以使用jquery Ajax吗?
由于
答案 0 :(得分:1)
虽然可以在不使用帮助程序的情况下在MVC中执行不显眼的验证,但作为开发人员,在不使用mvc帮助程序的情况下手动执行此操作将非常痛苦。严格说来,它会破坏你的表现并使你的代码不可读。
基本上,不显眼的验证包括两部分:服务器端,通过数据属性到模型字段和MVC助手,它们生成必要的标记,以及客户端库, jquery.validate.unobtrusive.js ,将这些标记解析为jquery validate plugin的有意义部分。
因此,通常,您可以手动编写必要的标记,只要加载验证js库,验证就可以工作。例如,作为验证主题的字段必须使用data-val ='true'属性进行标记。如果你想要你的字段,你应该写一些类似data-val-required =“error message”的东西。对于长度验证 - data-val-length-min =“5”(显然,最小)data-val-length-max =“50”(最大长度),data-val-length =“Min 5 max 50 chars required”
然而,当使用普通的mvc方法时,它只是模型属性的问题:
[Required]
[StringLength(50, MinimumLength = 5)]
public string Name { get; set; }
和标记中的一行代码:
@Html.TextBoxFor(o=>o.Name)
漂亮,有光泽,将视图和模型分开,并帮助KISS。
问题的第二部分。如果我正确理解您的问题,您需要验证动态表单。可能会回答: jquery.validate.unobtrusive not working with dynamic injected elements