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."将永远不会显示给客户端。谢谢你的澄清!
好吧,根据评论,事实证明,这是毫无意义的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"。