ASP.NetCore MVCコントローラでは、以下のHttpPost Createメソッドを使用して静的リスト_restaurantDataに新しいオブジェクト(Restaurant)を追加してから、新しいレストランの詳細ページにリダイレクトします。デバッグ中に、新しいレストランが_restaurantDataに追加され、適切なすべての適切なIDが割り当てられ、正しいIDがRedirectToActionメソッドに渡されることを確認できます。 'Details'が実際に呼び出されると、新しいRestaurantオブジェクトは_restaurantDataから削除され、 'model'はnullになります。どうすれば新しいレストランを "Create"のreturn文と "Details"の先頭の間のリストから削除することができますか?そして、どうすればこの問題を解決できますか?静的メンバーがHttpPostで削除されています
[HttpPost]
public IActionResult Create(RestuarantEditViewModel model)
{
var restaurant = new Restaurant();
restaurant.Name = model.Name;
restaurant.Cuisine = model.Cuisine;
_restaurantData.Add(restaurant);
return RedirectToAction("Details", new { id = restaurant.Id });
}
public IActionResult Details(int id)
{
var model = _restaurantData.Get(id);
if (model == null)
{
return RedirectToAction("Index");
}
return View(model);
}
ここにレストランを追加するコードを示します。
public void Add(Restaurant newRestaurant)
{
newRestaurant.Id = _restaurants.Max(r => r.Id) + 1;
_restaurants.Add(newRestaurant);
}
これはDbContextではなく、私が作成したクラスです。それを考慮して私がそれを保存する方法はありますか? – user3846006
ページの読み込みの間にページの状態が失われるため、データをどこかに格納する必要があります。 Entity Frameworkと 'DbContext'を見てください:https://docs.efproject.net/en/latest/ –
Ok。私はTのチュートリアルに従っていたので混乱しています。ページの読み込みの間に常にページの状態が失われているのか、それとも新しいのですか? – user3846006