【发布时间】:2014-03-18 14:55:10
【问题描述】:
我创建了一个操作结果,允许餐厅将他们的菜单保存到数据库中。我的问题是我需要将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();
}
【问题讨论】:
-
您只是创建了一个 Menu 实例,并没有为 Id 属性赋予任何值。那么您希望发生什么?
-
嗯,不确定,因为我使用了这样的 linq,但它没有执行并返回 ID,所以不会移动 var menuID = menu.Id;保存后更改工作?
-
@Selman22 好吧,这可能是使用财产恶作剧来做到的,如果没有更多信息,就无法回答这个问题。
-
如何获取 Menu 实例的 ID?它是数据库中自动递增的 int。
标签: c# asp.net asp.net-mvc variables