json - 将复杂的JSON对象传递给MVC 3操作

标签 json asp.net-mvc-3

尝试将复杂的JSON对象传递给MVC 3中的操作时,我得到一些奇怪的结果。

在操作参数模型上填充了Locations,但未填充名称和位置。

如果我执行ko.toJS(testViewModel),则名称和位置在那里,但是位置为空???

我正在使用kickout.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 Action :
<HttpPost()>
        Public Function TestIt(model As TestModel) As ActionResult
            Return Json(model)
        End Function

楷模:
Public Class TestModel 
    Public Property ID As Integer
    Public Property Name As String
    Public Property Locations As ICollection(Of LocationModel)
    Public Property Position As String  
End Class

Public Class LocationModel
    Public Property ID As Integer
    Public Property Name As String
    Public ReadOnly Property DisplayText As String
        Get
            Return String.Format("({0}) {1}", ID, Name)
        End Get
    End Property
End Class

最佳答案

尝试在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);
    }
});

关于json - 将复杂的JSON对象传递给MVC 3操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9610214/

相关文章:

c# - JSON序列化之间的区别

json - 在 scrapy 中将 json 参数传递给蜘蛛

php - 在 PHP 中访问 JSON 对象元素

c# - 添加文件上传到 Orchard 模块?

ASP.NET MVC 3 : Model comes empty in the controller?

c# - 调用 MVC 的目标已抛出异常

objective-c - 如何将 JSON 用于关系类型数据 - 最好只是重复数据?

.net - 用于 mvc3 日期格式和日期验证的文本框

asp.net-mvc-3 - HttpContext.Current 与 ActionExecutingContext

jquery - 如何使 Recaptcha 成为 MVC 3 中的必填字段?