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 に答える