现在项目页面大部分是ajax加载的,现在问题是在每个ajax表单页面必须再次去引用
<script src="~/Scripts/jquery.validate.unobtrusive.js"></script>,
否则无法验证,直接提交到后台了;实际上我在Layout中把js都引用过了。。。
还有我想通过捕获到自定义的异常信息,来呈现到客户端(调用js函数),也不能实现,而是直接输出了
如下自定义异常捕获代码:
protected override void OnException(ExceptionContext filterContext) { if (filterContext.HttpContext.Request.IsAjaxRequest()) { var myException = filterContext.Exception as IClientHandledException; if (myException == null) return; filterContext.ExceptionHandled = true; //filterContext.Result = new JavaScriptResult { Script = "Kratos.handelException('{0}')".With(myException.Message) }; filterContext.Result = new JavaScriptResult { Script = "alert(0)" }; } base.OnException(filterContext); }
但是alert(0)是被当作字符串输出的。
我该怎么做才能实现上述描述的效果?
对于Ajax加载的Form, 需要执行js,客户端验证才能好用(替换一下Form的Id)
$.validator.unobtrusive.parse("#contactInfoForm");
果然有效 非常感谢 - -
你要在每个表单视图中设置为使用这个Layout
表单视图是PartialView ,AJax请求来呈现表单出来,类似下面这样的,不引用jquery.validate.unobtrusive.js,就无法异步提交和验证
@Kratos Zhang: 那为什么不引用jquery.validate.unobtrusive.js呢?