1

有人可以提供一个很好的教程,说明如何在不使用 MVC 帮助器的情况下验证我的 html 字段。有可能吗?

我想保留纯 html 并使用input type="text"字段而不是 mvc 助手<%= Html.TextBox("Name") %>,但仍使用模型验证..

public class Employee
{
    [Required]
    public string Name { get; set; }
}

jquery Ajax也可以吗?

谢谢

4

1 回答 1

1

虽然可以在不使用帮助器的情况下在 MVC 中执行不显眼的验证,但作为开发人员,如果不使用 mvc 帮助器手动进行验证,将会很痛苦。严格地说,它会破坏你的性能并使你的代码不可读。

基本上,不显眼的验证由两部分组成:服务器端,通过模型字段的数据属性和 MVC Helpers,生成必要的标记,以及客户端库jquery.validate.unobtrusive.js,它将这些标记解析为有意义的部分jquery 验证插件。

因此,一般情况下,您可以手动编写必要的标记,只要加载了验证 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 injection elements

于 2013-07-25T23:48:20.077 回答