ajax发布的对象未在控制器处接收

时间:2014-02-26 09:35:15

标签: jquery asp.net ajax asp.net-mvc http-post

我有以下jquery $ .post代码。

var cbvalues = {};
cbvalues.A= $('#checkbox1').is(':checked');
cbvalues.B= $('#checkbox2').is(':checked');

var senddata = some string;
$.post('@Url.Content('+url')',{searchitems: cbvalues,   key:senddata },function(data){ 
    //some code 
});

模型类CheckBox

 public class CheckBox
 {
     public Boolean A {get; set;}
     public Boolean B {get; set;}
 }

控制器代码如下

 public ActionResult PostAction(CheckBox searchitems, string key)
 {
    // searchitems.A is always false
    // searchitems.B is always false

 }

我可以在这里获得密钥的价值。但我无法获得搜索项目对象的价值。 这篇文章是正确的。我可以在Firebug控制台中看到正确发布的值。 我认为问题应该在控制器上,或者我应该使用$ .ajax()而不是$ .post()。

请帮我解决问题。

Firebug发布了值。

键:测试 searchitems [A]:是的 searchitems [B]:true

2 个答案:

答案 0 :(得分:2)

将其更改为:

var cbvalues = {};
    cbvalues.A= $('#checkbox1').is(':checked');
    cbvalues.B= $('#checkbox2').is(':checked');

答案 1 :(得分:0)

@Url.Content不需要'',因为它是c#Razor代码。并且CBValues与复选框类型不匹配。

使用:

var cbvalues = {};
cbvalues.A = $('#checkbox1').is(':checked');
cbvalues.B = $('#checkbox2').is(':checked');