1

我创建了一个具有动态行和列的矩阵类型表单。单元格包含需要由 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用另一种类型或包含列表等的自定义对象替换,但到目前为止还没有运气。

有什么建议么?

4

1 回答 1

2

您需要将值作为自定义类型。我建议您将表单序列化为 JSON,然后在服务器端以您喜欢的任何方式访问序列化的表单。

于 2012-11-02T08:49:50.993 回答