如何在 ASP.NET MVC3 中使用“FormCollection”接收关联数组数据
Posted
技术标签:
【中文标题】如何在 ASP.NET MVC3 中使用“FormCollection”接收关联数组数据【英文标题】:How to receive associative array data with 'FormCollection' in ASP.NET MVC3 【发布时间】:2016-01-15 09:05:43 【问题描述】:我有以下数据可以向控制器操作发送 ajax 调用:
var data =
"PersonalInfo": [
"FirstName": "Leonel",
"LastName": "Messi"
,
"FirstName": "Cristiano",
"LastName": "Ronaldo"
]
;
Ajax调用方法:
$.ajax(
url: "/Home/Create",
type: "POST",
dataType: "json",
data: (JSON.parse(data)).PersonalInfo,
success: function (response)
);
控制器动作:
public ActionResult Create(FormCollection formCollection)
base.Create(formCollection);
在服务器端,我需要FormCollection
的数组/列表,例如:
formCollection[0] =
"FirstName": "Leonel",
"LastName": "Messi"
formCollection[1] =
"FirstName": "Cristiano",
"LastName": "Ronaldo"
或者类似下面的代码,这样我就可以多次调用base.Create(formCollection)
方法来获取多个个人信息。
public ActionResult Create(List<FormCollection> formCollection)
但这是不可能的,这种情况下有什么替代方案吗?
【问题讨论】:
你到底为什么要使用FormCollection
?使用具有 FirstName
和 LastName
属性的模型并绑定到模型的集合 - public ActionResult Create(List<Person> model)
【参考方案1】:
一定要用formcollection吗?
Visual Studio 有一个特殊的菜单选项选择,可以使用 JSON 对象并输出模型绑定器映射到的类。复制您预期的 JSON 结果(数据对象)。
转到一个类文件,然后转到 Visual Studio 的菜单栏,Edit
=> Paste Special
=> Paste JSON as classes
。
使用生成的类作为 api 控制器操作调用的参数,它们应该映射。
【讨论】:
我需要调用base.Create(formCollection)
方法。如果我从 Json 对象创建类,则无法调用 base.Create(formCollection)
。因为base.Create(className)
显示错误消息。谢谢您的回复.......以上是关于如何在 ASP.NET MVC3 中使用“FormCollection”接收关联数组数据的主要内容,如果未能解决你的问题,请参考以下文章
如果asp.net mvc3中的大小超过4mb,则无法上传文件[重复]
如何使用代码优先实体框架在 ASP.Net MVC3 中重新加载多对多导航属性
如何在 asp.net mvc3 中使用 Kendo UI Editor 和剃须刀?