10

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

[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

不太确定为什么要从 Beta 更改,但我能够通过将操作签名更改为:

[HttpPost]    
RedirectModel MyAction(MyActionDTO dto)

并将 MyActionDTO 定义为

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

它抛出了一个关于无法使用两个字符串参数绑定到多个主体参数的异常。我猜想使用 DTO 对象更接近地代表您在 AJAX 调用中发送的内容(一个 JSON 对象)。

于 2012-06-08T21:05:02.717 回答