10

MVC4 ベータ版から RC と最新の autofac にアップグレードしました。次のアクションは適切にバインドされていましたが、両方のパラメーターが null になりました。フォーマッターなどに関する変更があったようですが、何が問題の原因なのかわかりません

[HttpPost]    
RedirectModel MyAction(string value1, string value1)

リクエスト

Method: POST
Accept: application/json
URL: api/controller/myaction
BODY: {"value1":"1000", "value2":"foo"}
4

2 に答える 2

18

DTOオブジェクトの使用を避けたい場合は、次のことを試してください。

[HttpPost]    
RedirectModel MyAction(dynamic value1, dynamic value2) {
    string sValue1 = value1;
    string sValue2 = value2;
于 2012-06-12T13:23:00.467 に答える
10

ベータ版からの変更の理由はよくわかりませんが、アクション シグネチャを次のように変更することで機能させることができました。

[HttpPost]    
RedirectModel MyAction(MyActionDTO dto)

MyActionDTO を次のように定義します。

 public class MyActionDTO 
 {
        public string value1 { get; set; }
        public string value2 { get; set; }
 }

2 つの文字列パラメーターを使用して複数の本体パラメーターにバインドできないという例外がスローされていました。DTO オブジェクトを使用すると、AJAX 呼び出しで送信しているもの (JSON オブジェクト) をより厳密に表すことができると思います。

于 2012-06-08T21:05:02.717 に答える