C# MVC方法未接收json数组作为列表
我的MVC方法接收模型的其余部分,但不是我的列表 javascript: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",
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在查找序列化问题方面提供了巨大的帮助