【问题标题】:Handling multi-dimensional POST data in C# (ASP.NET 4.0)在 C# (ASP.NET 4.0) 中处理多维 POST 数据
【发布时间】: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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多