服务器没有收到JSON

时间:2016-01-08 14:17:16

标签: c# json asp.net-mvc http knockout.js

我有以下viewModel:

public class ProfileLocalizationViewModel
{
    public ProfileViewModel Profile { get; set; }
    public virtual string LanguageCode { get; set; }
    public string Description { get; set; }
}

Profile对象看起来像:

public class ProfileViewModel
{
    public int Id { get; set; }
    public string Name { get; set; }
    public bool IsOutlet { get; set; }
    public bool IsWholesaler { get; set; }
    public bool IsProducer { get; set; }
    public List<ProfileLocalizationViewModel> Localizations { get; set; }
}

从客户端,我发送以下JSON:

{"Profile":{"Id":-1,"Name":"New Profiledsa","IsOutlet":false,"IsWholesaler":false,"IsProducer":false,"Localizations":null},"LanguageCode":"en","Description":"Description for selected language","__ko_mapping__":{"ignore":[],"include":["_destroy"],"copy":[],"observe":[],"mappedProperties":{"Profile.Id":true,"Profile.Name":true,"Profile.IsOutlet":true,"Profile.IsWholesaler":true,"Profile.IsProducer":true,"Profile.Localizations":true,"Profile":true,"LanguageCode":true,"Description":true},"copiedProperties":{}}}

Chrome将解析为:

enter image description here

在服务器上,当我尝试接收ProfileLocalizationViewModel时,收到的值都为空:

enter image description here

知道为什么会这样吗?任何建议都非常感谢。

客户端ajax调用:

self.saveProfile = function (model, event) {
    model.ItemForEditing.LanguageCode = self.SelectedLanguage.Code().toLowerCase();
    var preview = ko.toJSON(model.ItemForEditing);
    if (validateForm()) {
        $.ajax({
            type: "POST",
            url: urlSaveProfile,
            data: ko.toJSON(model.ItemForEditing),
            contentType: 'application/json',
            async: true,
            beforeSend: function () 
            success: function (result) {
                // Handle the response here.
                self.pushProfile(ko.mapping.fromJS(result.Data));
                addContainer.modal('hide');
            }
        });
    }
};

preview内,就在电话会议之前,有JSON ......

enter image description here

0 个答案:

没有答案