【问题标题】:How do I return errors from my asp.net mvc controller when doing a jquery ajax post?执行 jquery ajax 发布时如何从我的 asp.net mvc 控制器返回错误?
【发布时间】:2009-03-28 11:35:04
【问题描述】:

我正在用 ASP.NET MVC 创建一个网站,但偶然发现了一些我真的无法弄清楚的东西。

我有一个用户个人资料页面,允许用户更改他的密码。在服务器端,我想在允许更改之前验证用户是否输入了正确的“当前”密码。

当密码不正确时,返回我的视图的最佳方式是什么?我尝试使用 ModelState.AddModelError 然后返回 Json(View()) 但我在返回给浏览器的 JSON 对象中的任何地方都看不到错误消息。

在客户端使用 jquery 的最佳方法是什么?

/杰斯珀

【问题讨论】:

    标签: jquery asp.net-mvc validation


    【解决方案1】:

    我会创建类

    JsonOK : JsonResult { ... }
    JsonError : JsonResult { ... }
    

    并将这 2 个用于 OK 和 Error 响应。

    try
    {
        ...
    }
    catch (Exception ex)
    {
        return JsonError(ex.Message);
        // or output your own message
        // or pass into it ModelState with your errors
    }
    

    【讨论】:

      【解决方案2】:

      ModelState 不会自动对返回的Json 执行任何操作。您应该使用要返回给客户端的数据手动填充模型对象。

      或者,如果你想向客户端报告错误,你可以在控制器动作方法中抛出异常并在jQuery中处理。

      【讨论】:

        猜你喜欢
        • 2021-09-15
        • 2020-11-12
        • 2017-12-09
        • 2013-12-15
        • 2012-12-30
        • 2016-01-07
        • 2014-12-23
        • 2016-05-21
        • 1970-01-01
        相关资源
        最近更新 更多