1

Jsonを介して定義されたタイプのリストを期待するWebServiceがあります。

クラス:

public class myType
{
    public int id { get; set;}
    public int? varA { get; set;}
    public string varB { get; set;}
    public float? varC { get; set;}
}

論理:

//Passed JSON --> Data:{'id':'1','varA':''}
[HttpPost]
public JsonResult Update(myType Data)
{
    //Data ends up with value's id = 1; varA = null; varB = null; varC = null;
    //So how can I find that valueA was actually passed with a null value, and all the 
    //others are just nulling by default?
    if (Data.varA.HasValue) dbItem.varA = Data.varA
    ...
}

myTypeにいくつかの値があると仮定しましょう。たとえば、{id、varA、varB、varC}など、idを除くすべての値はnull許容です。

今、私は意図的に1つの値だけを無効にしたい

問題は、帯域幅を節約するために、IDのみを送信し、JSONで更新された値を送信することです。たとえばData:{'id':'1','valueA':''}、メソッドが確認されている限り、Data Objectは、を与えるオブジェクトを返しますがid、オブジェクトの他のすべての変数のnull値。

では、どの放出された変数がjsonを介してwebmethodに送信されたかを知るために何ができるでしょうか?だから私は本当にnullにしたかった変数を知ることができますか?

詳細:フロントエンドでのExtJS4の使用。この質問はExt.Storeの

4

1 に答える 1

0

MVCは、名前に基づいて(通常の逆シリアル化を介して)送信された値を解析しようとします。したがって、値を指定しないと、null許容プロパティがあるため、期待どおりにnullが送信されます。たとえば、valueAに実際の値を渡してみませんか。null許容プロパティの値を指定しない場合、それらはnullになります...

于 2012-10-30T20:18:47.597 に答える