【问题标题】:ajax posted object not receiving at the controllerajax 发布的对象未在控制器接收
【发布时间】:2014-02-26 09:35:14
【问题描述】:

我有以下 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

 }

我可以在这里得到 key 的值。但我无法获得 searchitems 对象的值。 该职位工作正常。我可以在 Firebug 控制台中看到正确发布的值。 我认为问题应该出在控制器上,或者我应该使用 $.ajax() 而不是 $.post()。

请帮我解决问题。

Firebug 发布的值。

键:测试 搜索项[A]:真 搜索项[B]:真

【问题讨论】:

  • 你的意思是“url”???
  • 你能发布从 firebug 发送到控制器的值吗?
  • @Shanky..您是否在视图中使用 html 控件或 html 助手?
  • no.. 复选框是纯 html

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


【解决方案1】:

改成:

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

【讨论】:

  • 那是一个错字。它是在我的原始代码中正确编写的
【解决方案2】:

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

用途:

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

【讨论】:

  • 这是一个错字。它是在我的原始代码中正确编写的
猜你喜欢
  • 2013-07-03
  • 2017-09-19
  • 2015-12-10
  • 2021-11-07
  • 1970-01-01
  • 2021-11-23
  • 2017-03-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多