积极答复者
mvc3 中 ajax 提交表单,如何显示自定义错误?

问题
-
如题:框架:mvc3,JQ表单验证。
这个表单是ajax提交,所有attribute定义的验证都能正常运行,实例中需要判断提交的选项是否在数据库中存在,如果存在则不能提交。
在 controller 中对 该项进行验证
ModelState.AddModelError("CategoryName", m.CategoryName & " 已经被占用,请更换其他后重试")
如果是httppost请求的话,通过return view 可以显示这个错误信息,但ajax请求时,怎么让这个错误信息像客户端验证一样把错误显示在页面上呢?
人要诚实!还要踏实! 我先为人人,人人再为我! 我的Spaces: http://mydodu.spaces.live.com/
答案
-
我大概明白你的意思..是不是像我下面写的那样
<td width="50"> @Html.LabelFor(m => m.Name) </td> <td> @Html.TextBoxFor(m => m.Name, new { @class = "input" }) </td> <td> @Html.ValidationMessageFor(Model, m => m.Name, "请输入用户名", new { style = "width:170px;" }) </td>
- 已标记为答案 Song TianModerator 2012年7月25日 6:16
全部回复
-
或者说,如何自定义JavaScript在ValidationSummary处显示错误信息呢?
人要诚实!还要踏实! 我先为人人,人人再为我! 我的Spaces: http://mydodu.spaces.live.com/
-
function OnSuccess(data, status, xhr) { var result = data.Result; var msg=data.Msg; switch (result) { case 1: window.location = "@Url.RouteUrl(new { controller = "admin", action = "index" }) "; break; default: refreshValCode(); ShowAlert("登录失败", msg); break; } }
可以按我这么写 如果是ajax请求就返回json,如果result是1的话就是登陆成功 否则登陆失败! 登陆失败 的时候 你就在某个位置弹出消息 或者 是直接改变某个地方的值! -
你好,我也这样写了。但是觉得不完美,毕竟系统自动生成的验证程序已经写好了,有没有一个接口,可以直接调用来显示验证信息呢?
人要诚实!还要踏实! 我先为人人,人人再为我! 我的Spaces: http://mydodu.spaces.live.com/
-
我大概明白你的意思..是不是像我下面写的那样
<td width="50"> @Html.LabelFor(m => m.Name) </td> <td> @Html.TextBoxFor(m => m.Name, new { @class = "input" }) </td> <td> @Html.ValidationMessageFor(Model, m => m.Name, "请输入用户名", new { style = "width:170px;" }) </td>
- 已标记为答案 Song TianModerator 2012年7月25日 6:16
-
差不多就是这个意思,但能不能不自定义 ValidationMessageFor 这个函数,然后ajax提交后,根据服务端的验证情况(即json返回的数据情况)来显示系统中使用 @Html.ValidationMessageFor(Model, m => m.Name) 显示的错误呢。
我开始想是不是要用Modelstate.adderro... 来做,可实现不了,后来就用了自定义的js函数来完成的。但总觉得不完美。
人要诚实!还要踏实! 我先为人人,人人再为我! 我的Spaces: http://mydodu.spaces.live.com/
-
你可以尝试用
ValidationExtensions.ValidationMessageFor