【发布时间】:2012-08-13 18:34:04
【问题描述】:
在我们在 MVC4 中使用 WebAPI 之前以及在 jsRender 进入测试版之前,我们使用服务器端编程生成表单。即在视图模型上添加Data Annotations,然后生成一个有很多@Html.EditorFor和@Html.LabelFor的表单。 (如果你是一名 MVC 程序员,你就会明白我的意思。)然后 jQuery 验证将帮助我们在客户端进行数据验证,而 DataAnnotation 属性通过检查Model.IsValid 在服务器端完成这项工作。一切都很好。
现在我们有WebAPI。大部分例子是使用Javascript调用Ajax到WebAPI动作来在服务器和客户端之间传输表单数据(主要是json)。 jsRender(或其他类型的模板库)用于呈现数据。
我喜欢进行 Ajax 调用以避免不必要的整页呈现的想法。但主要困难在于,由于表单是作为模板准备的,它绑定到客户端的数据,因此无法将 DataAnnotation 等服务器端技术与 jQuery-validation 结合在一起。而且我们无法使用@Html.EditorFor 生成模板。看来我们失去了许多以前在 MVC3 中所拥有的巨大好处。
那么,各位专家是如何处理这个问题的呢?您是否完全抛弃了服务器端技术,只在模板中写出所有内容供客户端使用?
如果我们只能在客户端做所有事情,我们如何使用 jQuery 验证?我们是否手动添加那些data-val-xxx 标签?
感谢您的任何建议。
【问题讨论】:
标签: asp.net-mvc-4 data-annotations asp.net-web-api jsrender