当你在用jquery ui中的dialog中,很可能碰到在弹出的窗口中显示一个form, form提交时不进行客户端的mvc 验证,就提交到服务器端了。但是同样的代码如果不以jquery ui dialog呈现,直接呈现在layout中,是可以的。原因大概猜到,就是界面无刷新早在动态加载的html完成前,unobtrusive java script就对界面中的所有form进行的验证绑定,跟事件绑定一样,如果你不显示在再调用绑定函数,就不会做验证。现在的问题是那个函数是什么?
看源代码太慢,后来还是在国外的网站上找到是这一函数:jQuery.validator.unobtrusive.parse(“#formid[#dialogid]”);
参数可以是动态加载的formid,也可以是那个dailog id, 总之就是一段html区域就对了。
然后在submit前进行有效性判断下,如:if (!$("#Form1").valid()){
return false;