2012-02-20 5 views
1

を呼び出して、私は次のような方法があります。避けが

[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}を返します。

設定していないオブジェクトにnullを返さないようにするために設定できる属性がありますか?

+0

どのような値を入力しますか?あなたはいつもすべてのオブジェクトのための独自のゲッターを書くことができますnullはOKです – alexsuslin

+0

あなたはソースコードを見て、あなたが何かを変更することができます参照してくださいすることがあります..ここでその領域を掘り下げている質問:http:// stackoverflow .com/questions/8833961/serializing-null-in-json-net – Baz1nga

+0

ここで 'NullValueHandling.Ignore'を実装しますか? – bevacqua

答えて

1

anonオブジェクトを返すだけであれば何か違いはありますか?

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

本当に、これは私がやったことです。 – bevacqua

0

nullを返しても問題は発生しませんが、目標を達成する必要がある場合は、JsonResultDataというインターフェイスとそれを実装する2つのクラスを用意してください。 1つは返す必要があるすべての属性を持ち、2番目の属性はEmptyを持っています。