【发布时间】:2016-07-22 04:04:51
【问题描述】:
在 ASP.NetCore MVC 控制器中,我使用下面的 HttpPost Create 方法将新对象(餐厅)添加到静态列表 _restaurantData,然后重定向到新餐厅的“详细信息”页面。在调试时,我可以验证新餐厅是否已添加到具有所有正确属性的 _restaurantData 中,并且正确的 id 是否已传递给 RedirectToAction 方法。但是,一旦实际调用了“详细信息”,新的 Restaurant 对象就已从 _restaurantData 中删除,因此“模型”为空。新餐厅怎么可能从“Create”的返回语句和“Details”的开头之间的列表中删除?我该如何解决这个问题!
[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);
}
【问题讨论】:
标签: c# controller asp.net-core