将复杂的JSON对象传递给MVC 3操作
在MVC 3中,我试图将一个复杂的JSON对象传递给一个操作时,得到了一些奇怪的结果将复杂的JSON对象传递给MVC 3操作,json,asp.net-mvc-3,Json,Asp.net Mvc 3,在MVC 3中,我试图将一个复杂的JSON对象传递给一个操作时,得到了一些奇怪的结果 位置在动作参数模型上填充,但名称和位置不填充 如果我做了ko.toJS(testViewModel),那么名称和位置在那里,但是位置是空的 我正在使用knockout.js: var testViewModel = { Name: ko.observable("Joe Bob"), Locations: ko.observableArray([ { ID:
位置
在动作参数模型上填充,但名称和位置不填充
如果我做了ko.toJS(testViewModel)
,那么名称和位置在那里,但是位置是空的
我正在使用knockout.js:
var testViewModel = {
Name: ko.observable("Joe Bob"),
Locations: ko.observableArray([
{ ID: 1, Name: "Salem, OR" },
{ ID: 2, Name: "Big Bear Lake, CA" },
{ ID: 3, Name: "Big Bear City, CA" }
]),
Position: ko.observable("Manager")
}
通过jQuery ajax发送:
$.ajax({
url: "/ClaimsAuthority/Home/TestIt",
type: "POST",
data: ko.toJSON(testViewModel),
success: function (data, status, xhr) {
//ko.applyBindings(data);
}
});
MVC行动:
<HttpPost()>
Public Function TestIt(model As TestModel) As ActionResult
Return Json(model)
End Function
在AJAX请求中,尝试将内容类型设置为
application/json
:
$.ajax({
url: '/ClaimsAuthority/Home/TestIt',
type: 'POST',
contentType: 'application/json',
data: ko.toJSON(testViewModel),
success: function (data, status, xhr) {
//ko.applyBindings(data);
}
});
谢谢你,达林!!成功了!我很快就会欠你一杯啤酒的!是否可以以这种方式解析复杂模型,并在控制器操作中将其作为类型化对象接收?因为我正试图做同样的事情,但是对象的集合,尽管有实例,却有空的属性值。@GustavoRubio,是的,可以使用任意复杂的对象和集合。仅循环对象引用不受支持,因为它们不能被JSON序列化。
$.ajax({
url: '/ClaimsAuthority/Home/TestIt',
type: 'POST',
contentType: 'application/json',
data: ko.toJSON(testViewModel),
success: function (data, status, xhr) {
//ko.applyBindings(data);
}
});