Tha*_*had 9 asp.net-mvc autofac asp.net-web-api
我从MVC4 beta升级到RC和最新的autofac.以下操作正确绑定,但现在两个参数都为null.我看到他们改变了关于格式化程序的事情,但我不确定是什么原因引起了我的问题
[HttpPost]
RedirectModel MyAction(string value1, string value1)
Run Code Online (Sandbox Code Playgroud)
请求
Method: POST
Accept: application/json
URL: api/controller/myaction
BODY: {"value1":"1000", "value2":"foo"}
Run Code Online (Sandbox Code Playgroud)
mhu*_*mhu 18
如果要避免使用DTO对象,请尝试以下操作:
[HttpPost]
RedirectModel MyAction(dynamic value1, dynamic value2) {
string sValue1 = value1;
string sValue2 = value2;
Run Code Online (Sandbox Code Playgroud)
不确定为什么从Beta改变,但我能够通过将动作签名更改为:
[HttpPost]
RedirectModel MyAction(MyActionDTO dto)
Run Code Online (Sandbox Code Playgroud)
并将MyActionDTO定义为
public class MyActionDTO
{
public string value1 { get; set; }
public string value2 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
它抛出一个例外,即无法使用两个字符串参数绑定到多个body参数.我想使用DTO对象更接近地代表你在AJAX调用中发送的内容(一个JSON对象).