Связывание параметров 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;