1

Null 許容の decimal プロパティを含む DTO を受け取る Asp.NET MVC コントローラー アクションがあります。

例えば

 [DataContact]
 public class MyDTO
 {
     //other properties

     [DataMember]
     public decimal? SomeProp {get;set;}
 }

そして私の行動は次のようになります:

 public JsonResult SaveMyDTO(MyDTO dto)
 {...

js クライアントが正しい json データを渡すことがわかります。「SomeProp」に値が設定されていますが、サーバーで逆シリアル化されたときにプロパティが設定されていません。他のプロパティは設定されていますが、null 許容の decimal prop ではありません。

それを機能させる最も簡単な方法は何ですか?プロパティを文字列に変換しますか?

4

2 に答える 2

1

SomePropJSONデータを次のような数値として送信していると仮定します。

var json = { "SomeProp": 2.233 };

MVCのシリアル化ルーチンでは、null許容の数値に問題がある場合があるため、その場合は、要求を送信する前に、その値を文字列に変換してみてください。

var json = { "SomeProp": "2.233" };

編集
質問の最後の行でこの解決策について言及していることに気づきました:)

于 2012-08-10T08:37:48.287 に答える
1

プロパティをnull許容のdoubleに変更すると、正しく機能します。

于 2012-08-10T08:50:08.970 に答える