C# MVC方法未接收json数组作为列表

C# MVC方法未接收json数组作为列表,c#,jquery,asp.net-mvc,C#,Jquery,Asp.net Mvc,我的MVC方法接收模型的其余部分,但不是我的列表 javascript: var userSettings = [ { Name: "SettingName", Value: "SettingValue" }, { Name: "SettingName1", Value: "SettingValue2" }]; var data = { Email: "thing@what.com", Password: "123", ConfirmPassword: "123",

我的MVC方法接收模型的其余部分,但不是我的列表

javascript:

var userSettings = [ { Name: "SettingName", Value: "SettingValue" }, { Name: "SettingName1", Value: "SettingValue2" }];

var data = {
    Email: "thing@what.com",
    Password: "123",
    ConfirmPassword: "123",
    UserSettings: JSON.stringify(userSettings)
}

$.ajax({
    url: this.action,
    type: "POST",
    contentType: 'application/json; charset=utf-8',
    data: JSON.stringify(data)

})
C#/MVC

[HttpPost]
公共操作结果创建(CreateUser模型)
{
//东西
}
公共类CreateUser
{
公共字符串电子邮件{get;set;}
公共字符串密码{get;set;}
公共字符串ConfirmPassword{get;set;}
公共列表用户设置{get;set;}
}
公共类名称值
{
公共字符串名称{get;set;}
公共字符串值{get;set;}
}
我错过了什么?为什么我的用户设置总是空的


如果我将UserSettings改为String而不是List,它将接收json字符串,但我无法让它作为列表接收它

不要将
UserSettings
字符串化

这样做将创建带有转义引号的字符串,MVC将不知道如何绑定它

使用stringify:

"{"Email":"thing@what.com","Password":"123","ConfirmPassword":"123","UserSettings":"[{\"Name\":\"SettingName\",\"Value\":\"SettingValue\"},{\"Name\":\"SettingName1\",\"Value\":\"SettingValue2\"}]"}"
"{"Email":"thing@what.com","Password":"123","ConfirmPassword":"123","UserSettings":[{"Name":"SettingName","Value":"SettingValue"},{"Name":"SettingName1","Value":"SettingValue2"}]}"
没有严格化:

"{"Email":"thing@what.com","Password":"123","ConfirmPassword":"123","UserSettings":"[{\"Name\":\"SettingName\",\"Value\":\"SettingValue\"},{\"Name\":\"SettingName1\",\"Value\":\"SettingValue2\"}]"}"
"{"Email":"thing@what.com","Password":"123","ConfirmPassword":"123","UserSettings":[{"Name":"SettingName","Value":"SettingValue"},{"Name":"SettingName1","Value":"SettingValue2"}]}"
您的代码应该如下所示:

var data = {
    Email: "thing@what.com",
    Password: "123",
    ConfirmPassword: "123",
    UserSettings: userSettings
}

您将JSON字符串化设置两次,一次在数据对象中,另一次在AJAX调用中

尝试:

对于处理JSON数据,我发现Fiddler在查找序列化问题方面提供了巨大的帮助