MVC4 RC WebApi参数绑定

时间:2012-06-08 20:24:23

标签: asp.net-mvc autofac asp.net-web-api

我从MVC4 beta升级到RC和最新的autofac。以下操作正确绑定,但现在两个参数都为null。我看到他们改变了关于格式化程序的事情,但我不确定是什么原因引起了我的问题

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

REQUEST

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

2 个答案:

答案 0 :(得分:18)

如果您想避免使用DTO对象,请尝试以下操作:

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

答案 1 :(得分:8)

不确定为何更改Beta,但我能够通过将操作签名更改为:

[HttpPost]    
RedirectModel MyAction(MyActionDTO dto)

将MyActionDTO定义为

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

它抛出了一个例外,即无法使用两个字符串参数绑定到多个body参数。我想使用DTO对象更接近地代表你在AJAX调用中发送的内容(一个JSON对象)。