【问题标题】:ASP.NET MVC Catching Serialisation maxJsonLength violationASP.NET MVC 捕获序列化 maxJsonLength 违规
【发布时间】:2015-06-02 10:51:11
【问题描述】:

返回大型 JSON 结果时出现以下异常:

字符串长度超过maxJsonLength上设置的值 属性。

我正在尝试捕获发生序列化但没有发生的异常。

            try
            {
                return new JsonResult()
                {
                    Data = LargeJsonData,
                    JsonRequestBehavior = JsonRequestBehavior.AllowGet
                };
            }
            catch (Exception)
            {
                return "Error";
            }

我不想调整属性。我只想捕获异常并适当处理。

我发现以下似乎重复的问题,但接受的答案修改了 maxJsonLength 属性。

How to catch error during serialization or deserialization using the JSON JavaScriptSerializer

谢谢, 史蒂夫

【问题讨论】:

标签: c# json asp.net-mvc


【解决方案1】:

这将在 Json 结果上调用 ExecuteContext 方法时抛出。您可以通过为 JsonResult 定义自己的覆盖并在此处捕获它来解决此问题,例如

public class CustomJsonResult : JsonResult
{
    private const string _dateFormat = "yyyy-MM-dd HH:mm:ss";

    public override void ExecuteResult(ControllerContext context)
    {
        try
        {
            base.ExecuteResult(context);
        }
        catch(Exception ex)
        {
            //Handle it
        }
    }

然后返回 this 的实例而不是 JsonResult。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-22
    • 1970-01-01
    • 2011-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-06
    相关资源
    最近更新 更多