繁体   English   中英

从Jquery发送数据到控制器。 MVC C#

[英]send Data to controller from Jquery. MVC C#

我的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)
{

}

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

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

data: { "dataBll": dataBLL }

我认为应该可以工作。 要么

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

最坏的情况 也设置

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

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

下一个问题是您尝试将List<string> dataBll方法中,但是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<myNewType>作为方法的参数:

public ActionResult BllBtn(List<myNewType> dataBll)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM