2010-12-10 49 views
3

我们有两种数据模型:只读视图转到客户端的模型和发回修改数据的“控制”模型。从本质上讲,它们是相同的,并且都具有数据注释这样他们:ASP.NET数据注释:如何与JSON客户端共享?

// Require nothing but one or more digits 
[RegularExpression(@"^\d+$", ErrorMessage = "*")] 
public string productid {get;set;} 

我们所有的通信使用JsonResultJson()经过控制器方法。

客户如何承认这些数据注释?具体来说,像验证这样的JQuery插件如何接收这些正则表达式,必需的,范围等用于自身?

我们有一个包含嵌套集合的标题对象(如产品列表List)的响应。我们认为正则表达式可能存在于标题中,然后应用于所有表单字段。 但是,我们如何将注释转换为JSON序列化对象?

回答

2

请参阅this博客文章。

实际上,您可以调用MVC Html Helper方法<% Html.EnableClientValidation();%>,该方法将一些JSON输出到页面上。然后在MicrosoftMvcJQueryValidation.js中有一个翻译方法,它为每个字段的数据注释提供jquery验证。


更新征求意见

如果您呈现HTMLFormElements不使用MVC的控制将更加困难。您可能需要查看ViewData.ModelMetadata以访问数据注释。可能需要使用自定义MetaDataProvider我会考虑去MVC3 RC,所以我可以用个不引人注目的验证(数据属性)

这里有一些链接:

+0

如果你从来没有做到这一点,即没有aspx页面怎么办? – 2010-12-10 20:45:01

+0

@Dr。 Zim - 不知道我理解你的问题。你想根据数据注释模型验证数据,还是获取json中的数据注释?客户端验证意味着用户输入 - 没有“制作”到视图中,我看不出这是如何实现的。 – 2010-12-10 20:51:27

+0

我们使用JQuery Ajax调用将数据带到客户端,然后使用Microsoft JQuery模板呈现内容,并使用Microsoft数据链接将数组绑定到表单元素。不知何故,我需要将附加到类的正则表达式转换为JQuery验证插件可以使用的东西(例如)。 – 2010-12-10 21:08:26

相关问题