繁体   English   中英

使用jQuery将Javascript对象发布到MVC ActionResult

[英]Posting Javascript objects with jQuery to MVC ActionResult

我创建了一个JavaScript对象的客户端数组,我想将其发布回服务器。 但是当我执行以下操作时,该数组在FormCollection中返回为“未定义”服务器端。

我正在使用jQuery,这是我的JavaScript代码:

function MyObject(){
    this.Param1;
    this.Param2;
}

var myArray = new Array();

var newObject1 = new MyObject();
newObject1.Param1 = "abc";
newObject1.Param2 = "efg";
myArray.push(newObject1);

var myArray = new Array();
var newObject2 = new MyObject();
newObject2.Param1 = "hij";
newObject2.Param2 = "klm";
myArray.push(newObject2);

$.post("Save", myArray, function (result) { PostDataCallBack(result); });

有没有人有这样的例子或关于如何序列化JavaScript对象并将其发布的想法?

谢谢 :)

数组中的项目在发布到actionMethod时必须具有相同的名称。 只要它们具有相同的名称,modelBinder可能会选择它们并将它们填充到actionMethod的数组参数中。 现在,您似乎没有为数组定义名称。 这可能意味着它使用的是默认名称,但是actionMethod的参数名称必须匹配。

尝试这个:

$.post(
    "Save", 
    { myArray: myArray }, 
    function (result) { PostDataCallBack(result); } 
);

尝试使用与您的javascript对象匹配的ac#类,以便modelBinder确实可以为您做点好事:

public class MyObject
{
    public string Param1 { get; set; }
    public string Param2 { get; set; }
}

然后,您的操作方法应如下所示:

public ActionResult Save(MyObject[] MyArray) {
    //DO STUFF HERE
} 

暂无
暂无

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

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