ASP.NET MVC 3,是否将JSON部分作为字典接收?
如何在MVC3操作中接收JSON作为模型(包含字典) 浏览器端:将JSON发布到MVC3操作:ASP.NET MVC 3,是否将JSON部分作为字典接收?,asp.net,json,asp.net-mvc-3,Asp.net,Json,Asp.net Mvc 3,如何在MVC3操作中接收JSON作为模型(包含字典) 浏览器端:将JSON发布到MVC3操作: UpdateData : { Id: 88991, Changes: { X:5, Y:6 } } 服务器端: public class UpdateDataModel { public int Id {get;set;} public IDictionary<string, string> Changes {get;se
UpdateData :
{
Id: 88991,
Changes:
{
X:5,
Y:6
}
}
服务器端:
public class UpdateDataModel
{
public int Id {get;set;}
public IDictionary<string, string> Changes {get;set;}
}
public ActionResult SaveUpdateData(UpdateDataModel updateData)
{
// updateData.Id should be 88991
// updateData.Changes should be a dictionary containing X:5, Y:6
}
公共类更新的数据模型
{
公共int Id{get;set;}
公共IDictionary更改{get;set;}
}
公共操作结果SaveUpdateData(UpdateDataModel updateData)
{
//updateData.Id应该是88991
//更改应该是一个包含X:5,Y:6的字典
}
我认为应该是这样的:
UpdateData :
{
Id: 88991,
Changes:
[
{ Key: 'X', Value: 5 },
{ Key: 'Y', Value: 6 }
]
}
我通常通过使用jQuery和JSON库通过ajax发回服务器来实现这一点 发布回服务器的json需要与服务器端模型中的属性正确匹配,以便MVC中的默认模型绑定器能够确定将其映射到什么。 您的控制器操作/路由将很好,以下是客户端的外观:
function Save()
{
var data = {
updateData: {
Id: 85,
Changes: [
{ Key: 'A', Value: 'B' },
{ Key: 'C', Value: 'D' },
]
}
};
$.ajax({
type: 'POST',
url: '/someController/SaveUpdateData',
contentType: 'application/json',
dataType: 'json',
data: JSON.stringify(data),
success: function(response) {
//do stuff here after finishing server side
}
});
}
我没有测试,但它是一个有效的Javascript对象吗?我忘了将“{”改为“[”。现在它的validIt可以很好地工作了。谢谢!