[英]Having trouble passing Javascript array of objects to MVC3 controller, works with WCF service, any ideas?
我在将javascript数组传递给MVC3控制器时遇到问题,不确定我在做什么错,但是此代码确实适用于标准WCF服务。
$(function () {
$("button").click(function () {
Poster();
});
});
function Poster() {
var data = [];
data.push(new WidgetProperty("test1", "value1"));
alert(data.length);
$.post("Home/Test", {test : data});
}
function WidgetProperty(name, value) {
this.Name = name;
this.Value = value;
}
和控制器是
[HttpPost]
public ActionResult Test(WidgetProperty[] test)
{
return View("About");
}
public class WidgetProperty
{
public string Name { get; set; }
public string Value { get; set; }
}
有什么想法为什么控制器上的对象的属性为空值? 经提琴手检查,看来它传递了正确的值。
谢谢!
在发布数据之前,应该在数据上使用JSON.stringify(),并且由于您知道数据类型为JSON,因此最好将发布的数据指定为JSON。
$.post("Home/Test", {test : JSON.stringify(data) }, "json");
编辑 :
我对此进行了更多研究,似乎您需要包括contentType: "application/json"
才能在mvc3中工作:
$.ajax({
type: "POST",
url: "Home/Test",
data: JSON.stringify(data),
success: function(data){},
dataType: "json",
contentType: "application/json"
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.