避免在JSON中为AJAX调用返回空值

时间:2012-02-20 15:53:33

标签: c# jquery ajax model-view-controller

我有以下方法:

[HttpPost]
[AjaxOnly]
public JsonResult ValidateInput(string text)
{
    return new EmptyJsonResult();
}

/// <summary>
/// returns a JSON result that is marked as being empty.
/// </summary>
public sealed class EmptyJsonResult : JsonResult
{
    public EmptyJsonResult()
    {
        Data = new JsonResultData
        {
            Empty = true
        };
    }
}

public class JsonResultData
{
    public bool Empty { get; set; }
    public string[] Errors { get; set; }
}

我希望这会将{"Empty":true}返回给浏览器,但会返回{"Empty":true,"Errors":null}

我是否可以设置任何属性或内容以避免在我没有填充的对象上返回空值?

2 个答案:

答案 0 :(得分:1)

如果您只是返回一个匿名对象,它对您有什么影响吗?

    public EmptyJsonResult()
    {
    Data = new
        {
            Empty = true
        };
    }

答案 1 :(得分:0)

我没有看到返回null的问题,但是如果你需要完成你的目标,有一个名为JsonResultData的接口和两个实现它的类。一个具有您需要返回的所有属性,第二个属性只有空。