我一直在搜索相当长的一段时间,一直未能找到答案。asp.net mvc 3 jquery手动添加验证消息
我正在使用asp.net MVC 3与不显眼的验证。我的模型绑定了数据注释以进行简单验证(必填字段,正则表达式等)。但是,我有更复杂的验证发生在服务器上。我正在做一个ajax文章,它返回来自我的领域模型的验证add'l消息。我想要做的就是将这些验证消息放在现有的窗体上。我不想使用部分视图,因为我真正拥有的是消息回来,并且不需要刷新整个视图。另外,我没有添加新的规则或新的输入到表单中,因此$ .validator.unobtrusive.parse不起作用。这些只是我想要放在表单上的消息。 $ .post调用返回字段受到影响的消息列表以及验证消息。
这里是什么样的,我希望对你有所帮助
每请求做
$.post(url, { someData}, function (data) {
for (message in data.Messages) {
$("#form").validate().addMessage(message.Field, message.Text);
}
});
谢谢,这里的返回JSON的样品,这是相当简单的。
{"id":0,"messages":["Level":0,"Message":"Style is required","Name":"Style"}],"operationResult":false}
消息是包含严重性级别,错误属性和错误消息的对象的列表。我会使用消息对象中的名称来匹配它在表单上的位置。
仅供参考:部分视图并不意味着您必须刷新整个视图。 – 2011-05-19 18:46:27
你能解释一下吗?您至少必须刷新绑定到相关模型的视图部分。我有一些下拉框与一吨物品,我并不热衷于重建,并roundtraipping整个选择列表 – 2011-05-26 22:08:35
这将是更容易,如果你提供的答复消息(可能是一种JSON形式)与验证错误。那么我们就可以更容易地阐述解决方案。所以你提出了一个Ajax请求。告诉我们什么回到客户端... – 2011-05-26 22:31:30