HttpException在ASP中的意义是什么?净MVC

本文关键字:是什么 MVC ASP HttpException | 更新日期: 2023-09-27 18:17:56

我有点困惑的HttpException Exception类在ASP。Net MVC 4。我知道它允许抛出自定义错误代码,但是还有另一个接受消息的构造函数:

textbox构造函数

据我所知,HTTP只发送回状态码和一个小消息相关的状态码,如"内部服务器错误"。如果是这样的话,在ASP的上下文中使用这个类还有什么意义呢?. NET MVC应用程序?现在我有控制器抛出带有特定状态码的httpexception来告诉客户端正在发生什么。这是正确的方法吗?例子:

    /// <summary>
    /// GET: Returns the data required for the modal to edit the environments.
    /// </summary>
    /// <returns></returns>
    [HttpGet]
    public ActionResult EditEnvironments()
    {
        try
        {
            List<Setting> settings = _service.GetAllSettings().ToList();
            return PartialView("_EditEnvironments", settings);
        }
        catch (Exception ex)
        {
            Log.Error(ex.Message, ex);
            throw new HttpException(500, "Something bad happened.", ex);
        }
    }

这里的消息"Something bad happened."将永远不会显示给客户端。谢谢你的澄清!

HttpException在ASP中的意义是什么?净MVC

好吧,根据评论,事实证明,这是毫无意义的ASP。NET MVC应用程序,只有一个客户端和服务器。两个web api相互通信是很有用的。然而,如果有人感兴趣,你想在ASP的上下文中"传递"一条消息给客户端。. NET MVC,你可以像这样使用HttpStatusCodeResult:

return new HttpStatusCodeResult(500,"Something bad happened")

你可以使用jQuery $.ajax()访问"Something bad happened",就像这样:

                    $.ajax: {
                        url: "@Url.Action("RequestsAdminAjax", "Admin")",
                        type: "POST",
                        data: function(data) { return JSON.stringify(data); },
                        contentType: "application/json; charset=utf-8",
                        error: function (xhr, textStatus,errorThrown) {
                            debugger;
                            toggleAlert('<strong>Error: </strong>Unable to load data.', 'alert alert-danger');
                        }
                    },

errorThrown将包含"Something bad happened"。

相关文章: