【发布时间】:2012-11-02 08:44:09
【问题描述】:
我创建了一个具有动态行和列的矩阵类型表单。单元格包含需要由 C#(MVC4、ASP.NET 4)处理的输入字段。表单看起来像这样(简化):
<form action="~/Administration/PriceMatrix" method="post">
<input type="text" name="Prices[1][0][1]" value="15.00" />
<input type="text" name="Prices[1][0][2]" value="12.50" />
<input type="text" name="Prices[1][1][1]" value="10.00" />
<input type="text" name="Prices[1][1][2]" value="7.50" />
</form>
匹配的控制器还是空的:
[HttpPost]
public ActionResult PriceMatrix(object form)
{
}
当我使用Request.Form 时,我当然可以访问所有值,但它们不会(反)序列化为数组。所以我不能这样做:Request.Form["Prices"][0] 或类似的东西。相反,我只能使用它们的全名来访问它们:Request.Form["Prices[1][0][1]"] (=15.00)。当然,我可以遍历数组并为每个值拆分Key,但我想以其他方式进行。我尝试将object form 替换为另一种类型或包含列表等的自定义对象,但到目前为止还没有成功。
有什么建议吗?
【问题讨论】:
-
你试过像“
double[,,] prices”这样的参数吗?只是想知道......不知道这是否有效 -
为什么不将表单序列化为 JSON?
标签: c# html asp.net-mvc asp.net-mvc-4 http-post