ユーザが保存ボタンをクリックすると、JavaScript関数はAJAXを使用してコントローラを呼び出し、オブジェクトに関するJSONデータを送信します。コントローラのNullパラメータがAjaxから
JavaScriptの機能
$.ajax({
url: "/Data/sendFridgeItems?items=" + JSON.stringify($scope.items.data),
type: "POST",
data: JSON.stringify($scope.items.data),
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function() {
console.log("good!");
},
error: function() {
console.log("error");
}
});
コントローラ
[HttpPost]
public ActionResult SendFridgeItems(string items)
{
fridge[] fridgeItems = JsonConvert.DeserializeObject<fridge[]>(items);
foreach (fridge item in fridgeItems)
{
bool exists = cookDB.fridges.AsEnumerable()
.Any(x => x.Name == item.Name && x.Purchased == item.Purchased && x.Count == item.Count);
if (!exists)
{
cookDB.fridges.Add(item);
cookDB.SaveChangesAsync();
}
}
return null;
}
、それは動作しますが、私は、URLパラメータを使用して自分のデータを送信する方法は、私の状況で正しいとは思いませんデータが十分に大きくなるからです。自分のデータをコントローラに送るより良い方法があるかどうかを知りたがっていますか?
このように送信しようとしましたが、コントローラがnull値を受け取りました。
$.ajax({
url: "/Data/sendFridgeItems",
type: "POST",
data: JSON.stringify($scope.items.data),
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function() {
console.log("good!");
},
error: function() {
console.log("error");
}
});
$ scope.items.data
N.Ivanovのソリューションのためのコントローラ(このコントローラ+ N.固定[{"id":2,"name":"Item1","count":2,"type":"pcs.","purchased":"12/09/2017","wasted":"15/10/2017","cam":"Freezer","comment":"no comment","$$hashKey":"object:38"},{"id":3,"name":"Item2","count":30,"type":"g.","purchased":"15/01/1880","wasted":"21/03/1882","cam":"Cooler","comment":"commented","$$hashKey":"object:39"}]
$ scope.items
$scope.items = {
"count": 2,
"data": [
{
"name": "Item1",
"count": 2,
"type": "pcs.",
"purchased": "12/09/2017",
"wasted": "15/10/2017",
"cam": "Freezer",
"comment": "no comment"
},
{
"name": "Item2",
"count": 30,
"type": "g.",
"purchased": "15/01/1880",
"wasted": "21/03/1882",
"cam": "Cooler",
"comment": "Commented"
}
]
};
のJSONイワノフのアヤックス=解)
public ActionResult SendFridgeItems(fridge[] items)
{
fridge[] fridgeItems = JsonConvert.DeserializeObject<fridge[]>(items.ToString());
foreach (fridge item in items)
{
bool exists = cookDB.fridges.AsEnumerable()
.Any(x => x.Name == item.Name && x.Purchased == item.Purchased && x.Count == item.Count);
if (!exists)
{
cookDB.fridges.Add(item);
cookDB.SaveChangesAsync();
}
}
return null;
}
はこのようにそれを作ると私は 'データをお知らせコントローラに送信するJSON解析を試してみてくださいJSON.stringify($ scope.items.data) }、 ' –