2017-08-25 21 views
1

いる渡され、私は、この宣言でアクションにポストを実行するためにajaxを使用しています:モデルのプロパティがnull

public ActionResult MonitorReport(FilterCaseViewModel model) 

とりわけFilterCaseViewModelは、この特性を持っています

私は、コンテンツタイプの JSON使用してい
public class FilterCaseViewModel 
{ 
    public List<int> Status { get; set; } 
} 

は、JSONオブジェクトは、(それはかなり長いですと、私はそれの残りの部分を省略しました)このように起動します。私は、このしかしStatusプロパティがインスタンス化されていると0の値が追加されているにもかかわらずStatus

enter image description here enter image description here

のために解釈し、空の文字列を取得していますリクエストフォームを見てみると

{ model: {"TextSearch":null,"Generic1":null,"Generic2":null,"Status":null,"Team":null,"Client":null 

リストに追加します。

enter image description here

私はStatusプロパティはnullことを期待し、なぜそうではないのですか?

注:ステータスはコンストラクタ内のどこにも設定されません。

+0

あなたは 'Status'はとても' DefaultModelBinder'はあなたのコレクションを初期化します(と、それは空のコレクションになります)の名前/値のペアを送信します。名前を省略すると 'null 'になります。しかし、あなたの主張が重複しているわけではありません。 –

+0

また、最初のイメージは何ですか? 'Request.Form'の' AllKeys'を調べて、 'contentType = 'application/json''を持つajaxリクエストでは空になります。 ) –

+0

@StephenMuecke contentTypeをJSONに明示的に設定しなかったのですが、私はJSONオブジェクトを渡したので自動的にコンテンツタイプを設定すると思いました。 –

答えて

-2

デフォルトでは.netの整数は0として値を保持します。整数変数のデフォルト値としてnullが必要な場合は、その変数をNULL値として定義する必要があります。同様this-

int? i; 

詳細はここで見つけることができます - Using Nullable Types (C# Programming Guide)

+0

私の型は' int'型ではなく、 'List '型です。 nullになります。 –

+2

あなたは*質問をお読みになりましたか? OPはなぜ 'List 'が空の文字列から値を取得しているのかを尋ねています。これは 'int'と' int'とは関係ありません。 –

関連する問題