配列を含むオブジェクトの配列を JavaScript から MVC の actionresult メソッドに渡す必要があります。基本的に、キーが文字列の配列である KeyValuePair があり、これらの KeyValuePair のリストを返す必要があります。コードには、変更したキーのリストと、キーと値のペアを保持する JS オブジェクトがあります。返そうとする JavaScript オブジェクトは、クラスと同じ形式である必要があります。私もそれをJSON化しようとしましたが、うまくいきませんでした。
ありがとう。
public class ChangedItem
{
public IEnumerable<string> Key { get; set; }
public int Value { get; set; }
public ChangedItem()
{
}
public ChangedItem(IEnumerable<string> key, int value)
{
Key = key;
Value = value;
}
}
[HttpPost]
public ActionResult UpdateResults(IEnumerable<ChangedItem> changedItems)
{
return RedirectToAction("Index");
}
function getChangedItems() {
var ChangedItems = new Array();
for (var i = 0; i < _ChangedItemKeys.length; i++) {
var ChangedItem = {};
ChangedItem.Key = _ChangedItemKeys[i];
ChangedItem.Value = _ChangedItems[_ChangedItemKeys[i]];
ChangedItems[i] = ChangedItem;
}
return ChangedItems;
}
function submitNewVals() {
$.ajax({
url: '/Home/UpdateResults',
type: 'POST',
dataType: 'json',
data:
{
changedItems: getChangedItems()
}
});
}
リクエスト データの詳細を以下に示します。アクションの結果に 6 つのアイテムが表示されます。これらの各アイテム内のキーは null で、値は 0 です。
changedItems[0][Key][]:BoxeR
changedItems[0][Key][]:Proleague
changedItems[0][Key][]:Total
changedItems[0][Key][]:2005
changedItems[0][Key][]:Quarter 2
changedItems[0][Key][]:Actual
changedItems[0][Value]:123
changedItems[1][Key][]:BoxeR
changedItems[1][Key][]:Proleague
changedItems[1][Key][]:Team
changedItems[1][Key][]:2005
changedItems[1][Key][]:Quarter 1
changedItems[1][Key][]:Actual
changedItems[1][Value]:123
changedItems[2][Key][]:BoxeR
changedItems[2][Key][]:Proleague
changedItems[2][Key][]:Team
changedItems[2][Key][]:2005
changedItems[2][Key][]:Quarter 1
changedItems[2][Key][]:Estimate
changedItems[2][Value]:123
changedItems[3][Key][]:BoxeR
changedItems[3][Key][]:Proleague
changedItems[3][Key][]:Team
changedItems[3][Key][]:2005
changedItems[3][Key][]:Quarter 2
changedItems[3][Key][]:Actual
changedItems[3][Value]:123
changedItems[4][Key][]:BoxeR
changedItems[4][Key][]:Proleague
changedItems[4][Key][]:Team
changedItems[4][Key][]:2005
changedItems[4][Key][]:Quarter 2
changedItems[4][Key][]:Estimate
changedItems[4][Value]:123
フィドラーで遊んで、要求データ形式を変更しようとしましたが (.Key[x]、.Value を使用)、何も機能しませんでした。
ありがとう!