Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 从ajax请求引发异常并捕获它_Asp.net Mvc - Fatal编程技术网

Asp.net mvc 从ajax请求引发异常并捕获它

Asp.net mvc 从ajax请求引发异常并捕获它,asp.net-mvc,Asp.net Mvc,我试图在ASP MVC中模拟异常管理 以下是我所拥有的: public JsonResult callit() { throw new HttpException(400, "Bad Request"); } 然后我试着这样称呼它: $.ajax({ type: 'GET', url: '@Url.Action("callit", "rat", new { area = "test" })', cache: 'false',

我试图在ASP MVC中模拟异常管理

以下是我所拥有的:

public JsonResult callit()
{
        throw new HttpException(400, "Bad Request");
}
然后我试着这样称呼它:

$.ajax({
        type: 'GET',
        url: '@Url.Action("callit", "rat", new { area = "test" })',
        cache: 'false',
        error: function (request, status, error) {
            alert(request.responseText);
        }
});

但是,当抛出异常时,我的应用程序会一直停止,除非我停止程序,否则不会触发我的错误。我该怎么办

不要抛出异常,而是返回一个异常并将方法更改为
ActionResult

public ActionResult callit()//或public HttpStatusCodeResult callit()
{  
返回新的HttpStatusCodeResult(400,“错误请求”);
}

您可以编写操作筛选器来处理异常。使用
返回新的HttpStatusCodeResult(400,“错误请求”)
@StephenMuecke我收到一条红线,表示我无法显式地将类型web异常转换为jsonresult,只需将其更改为
public ActionResult callit()
哦,好的,它可以工作。如果是Json,怎么会不起作用?