![](/img/trans.png)
[英]HttpException in ASP.NET MVC with EntityFramework and JSON
[英]What is the point of HttpException in ASP.NET MVC
我对ASP.NET MVC 4中的HttpException Exception类有点困惑。我知道它可以引发自定义错误代码,但是还有另一个接受消息的构造函数:
据我了解,HTTP仅发送回状态代码和与状态代码相关的小消息,例如“内部服务器错误”。 如果是这种情况,那么在ASP.NET MVC应用程序的上下文中使用此类的意义何在? 现在,我有一些控制器,它们抛出带有特定状态代码的HttpExceptions来告诉客户端发生了什么。 这是正确的方法吗? 例:
/// <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);
}
}
在此消息“发生了一些不好的事情”。 永远不会显示给客户。 感谢您的澄清!
根据评论确定,事实证明,在仅具有客户端和服务器的ASP.NET MVC应用程序中,它毫无意义。 两个Web API相互通信很有用。 但是,如果有兴趣的人想在ASP.NET MVC上下文中将消息“传递”给客户端,则可以使用HttpStatusCodeResult,如下所示:
return new HttpStatusCodeResult(500,"Something bad happened")
您可以使用jQuery $ .ajax()这样访问“发生了严重的事情”:
$.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
将包含“发生了什么不好的事情”。
希望这对某人有帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.