查找对象id的值
本文关键字:的值 id 对象 查找 | 更新日期: 2023-09-27 17:50:57
我创建了一个操作结果,允许餐厅将菜单保存到数据库中。我的问题是,我需要使用menuID
为另一个控制器,但当我运行代码的变量menuID
总是0,而不是刚刚添加到数据库的值。
任何帮助都是感激不尽的。
创建菜单操作结果
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(MenuViewModel model)
{
if (ModelState.IsValid)
{
var manager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext()));
var currentUser = manager.FindById(User.Identity.GetUserId());
using (var objCtx = new ApplicationDbContext())
{
var currentrestaurant = (from r in objCtx.Restaurants
where r.UserID == currentUser.Id
select r).First<Restaurant>().id;
var menu = new Menu() { Name = model.Name, Restaurantid = currentrestaurant };
var menuID = menu.Id;
db.Menus.Add(menu);
db.SaveChanges();
return RedirectToAction("Create", "Meal", new { MenudID = menuID});
}
}
return View();
}
这个ID很可能是在数据库中生成的。如果是这种情况,menu.Id
将具有实际值后您将对象保存到DB,而不是之前。所以你需要重新排序你的代码:
var menu = new Menu() { Name = model.Name, Restaurantid = currentrestaurant };
db.Menus.Add(menu);
db.SaveChanges();
return RedirectToAction("Create", "Meal", new { MenudID = menu.Id});
边注。确保最后一行的parameter拼写正确——不应该是MenuID
而不是MenudID
吗?