Json 为什么我的自定义错误筛选器不能捕获所有错误?

Json 为什么我的自定义错误筛选器不能捕获所有错误?,json,asp.net-mvc,asp.net-mvc-5,asp.net-mvc-filters,Json,Asp.net Mvc,Asp.net Mvc 5,Asp.net Mvc Filters,我有以下自定义过滤器,借用自: 然而,当我尝试并发布到标有[HttpGet]的操作时,例如 [HttpGet] [JsonError] public JsonNetResult IndexData() { var bundles = Db.PointsBundles; var model = new PointsBundleBundleIndexViewModel(); model.MapItems(bundles); var res = (JsonNetResu

我有以下自定义过滤器,借用自:

然而,当我尝试并发布到标有
[HttpGet]
的操作时,例如

[HttpGet]
[JsonError]
public JsonNetResult IndexData()
{
    var bundles = Db.PointsBundles;
    var model = new PointsBundleBundleIndexViewModel();
    model.MapItems(bundles);
    var res = (JsonNetResult)Json(model.Items, null, null, JsonRequestBehavior.DenyGet);
    return res;
}

我得到一个标准的HTML404错误响应。当然,我怀疑这是因为404检测本身并不是一个异常,也没有被我的处理程序捕获。是否有另一个过滤器可用于返回Json响应404错误,或者我可以做什么?

您已将
[HttpGet]
放在您的操作上,但稍后您将使用此过滤器:

var res = (JsonNetResult)Json(model.Items, null, null, JsonRequestBehavior.DenyGet);
尝试删除:

JsonRequestBehavior.DenyGet

谢谢,但我的问题不是为什么我会得到404,我知道这是因为
JsonRequestBehavior.DenyGet
,而是如何获得一个合适的JSON响应而不是标准的HTML响应。您可能想检查一下asp.net mvc中的自定义错误处理
JsonRequestBehavior.DenyGet