jQueryを使用して、ASP.NETMVCのHttpPostを使用してAjax呼び出しを行っています。値のディクショナリを渡せるようにしたいと思います。
私が考えることができる最も近いことは、文字列の多次元配列を渡すことでしたが、実際にActionResultメソッドに渡される結果は、「キー/値」ペアの文字列連結を含む1次元文字列配列です。
たとえば、以下の「values」配列の最初の項目には、以下の値が含まれています。
"id,200"
これが私のActionResultメソッドの例です:
public ActionResult AddItems(string[] values)
{
// do something
}
jQueryからメソッドを呼び出す方法の例を次に示します。
$.post("/Controller/AddItems",
{
values: [
["id", "200"],
["FirstName", "Chris"],
["DynamicItem1", "Some Value"],
["DynamicItem2", "Some Other Value"]
]
},
function(data) { },
"json");
辞書オブジェクトをjQueryから配列ではなくActionResultメソッドに渡す方法を知っている人はいますか?
ActionResultを次のように定義したいと思います。
public ActionResult AddItems(Dictionary<string, object> values)
{
// do something
}
助言がありますか?
更新:値内にコンマを渡そうとしましたが、基本的に、文字列解析を使用してキーと値のペアを実際に解析することは不可能です。
これを渡す:
values: [
["id", "200,300"],
["FirstName", "Chris"]
]
結果は次のようになります。
values[0] = "id,200,300";
values[1] = "FirstName,Chris";