Связывание параметров MVC4 RC WebApi

Я обновился от бета-версии MVC4 до RC и последней версии autofac. Следующее действие было обязательным, но теперь оба параметра равны нулю. Я вижу, что они меняли вещи о Форттерах и тому подобное, но я не уверен, что вызвало мою проблему.

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

ЗАПРОС

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

Ответ 1

Не совсем уверен, почему изменение с Beta, но я смог заставить его работать, изменив сигнатуру действия на:

[HttpPost]    
RedirectModel MyAction(MyActionDTO dto)

и определяя MyActionDTO как

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

Это было исключение из-за невозможности привязки к нескольким параметрам тела с использованием двух строковых параметров. Я предполагаю, что использование объекта DTO более точно отражает то, что вы отправляете в вызове AJAX (объект JSON).

Ответ 2

Если вы хотите избежать использования объекта DTO, попробуйте следующее:

[HttpPost]    
RedirectModel MyAction(dynamic value1, dynamic value2) {
    string sValue1 = value1;
    string sValue2 = value2;