[英]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.