【问题标题】:send Data to controller from Jquery. MVC C#从 Jquery 向控制器发送数据。 MVC C#
【发布时间】:2016-10-19 08:25:52
【问题描述】:

我的 jquery 脚本代码部分,脚本工作正常,并在 dataBLL 中设置数据数组/对象..

var dataBLL = [];
$('#mytable tr').each(function (i) {

dataBLL.push({

id: $(this).find('td:eq(0)').text(),
ctype: $(this).find('td:eq(1)').text(),
cpath: $(this).find('td:eq(2)').text(),
ckey: $(this).find('td:eq(3)').text(),
ckey: $(this).find('td:eq(4) input:frist').val(),

});
  $.ajax ({
             url:"User/BllBtn",
             type:"POST",
             data:"dataBll="JSON.stringify(dataBLL);
             dataType: "json",
             success: function (e) {

                alert("sucess");
            }})

但我无法将此对象/数组发送到我的控制器以使用它的数据并遍历每个行条目。

我的控制器签名

[HttpPost]
public ActionResutl BllBtn(List<string> dataBll)
{

}

请指导如何将此对象作为列表获取,以便我可以以最简单的方式循环进入。

【问题讨论】:

  • 然后做什么.. 任何代码更改请求@Div
  • 在 List dataBll 中获取 null :( @Div

标签: javascript c# json ajax asp.net-mvc


【解决方案1】:

您遇到了语法错误(您的浏览器控制台会告诉您),并且您正在生成无效的 JSON。

data: { "dataBll": dataBLL }

我认为应该可以。或者

data: JSON.stringify({ "dataBll": dataBLL })

最坏的情况。同时设置

contentType: 'application/json; charset=UTF-8'

作为 ajax 调用中的另一个选项。

下一个问题是您尝试将List&lt;string&gt; 接受到您的方法中,但dataBll 是一个具有以下属性的复杂对象:

id, ctype, cpath, ckey, ckey

首先,你不能在同一个对象中定义两次 ckey,其次你的 JSON 对象与 C# 方法中的类型不兼容。您需要定义一个类,例如

public class myNewType
{
  public string id {get; set; }
  public string ctype {get; set; }
  public string cpath {get; set; }
  public string ckey {get; set; }
}

然后接受List&lt;myNewType&gt;作为方法的参数:

public ActionResult BllBtn(List<myNewType> dataBll)

【讨论】:

  • 请帮助如何生成有效的 JSON ..任何代码示例! @ADyson
  • 不,我在我的操作中没有得到任何数据,只在 index[0] 处计数 1,只有键名:(
  • 你知道的任何其他方法,如果它有效,我会遵循@ADyson
  • 它的data: JSON.stringify({ "dataBll": dataBLL }),,你还需要设置contentType: 'application/json; charset=UTF-8',
  • 完成了,但再次如何获取控制器 ActionResult BllBtn 中的值 :( @StephenMuecke
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-28
  • 1970-01-01
  • 2012-06-16
相关资源
最近更新 更多