我的控制器中有以下操作方法:
// GET: MenuOrders/Create
public IActionResult Create()
{
ViewData["MasterMenuId"] = new SelectList(_context.MasterMenu, "MasterMenuId", "MasterMenuId");
return View();
}
// POST: MenuOrders/Create
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create([Bind("MenuOrderId,CustomerName,MasterMenuId,OrderQty,IsPaid,IsCancel")] MenuOrder menuOrder)
{
if (ModelState.IsValid)
{
_context.Add(menuOrder);
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}
ViewData["MasterMenuId"] = new SelectList(_context.MasterMenu, "MasterMenuId", "MasterMenuId", menuOrder.MasterMenuId);
return View(menuOrder);
}
在我执行它之后,它将重定向到Index
页面。我想更改它,这样它将停留在具有相同数据的相同视图中,包括Id
(已检索)。
我的问题是:我该怎么做?
谢谢你
1条答案
按热度按时间e4yzc0pl1#
我想更改它,这样它将保留在相同的视图中,具有相同的数据,包括Id(已检索)。
您可以通过以下方式实现:
控制器:
你必须返回到
create view page
,而menuOrder.MenuOrderId
将返回我们最后插入的id。因此代码将为:**注意:**如果您想清除现有的表单,您可以在
return View("Create")
之前使用ModelState.Clear();
。我刚刚通过绑定到viewbag中为您提供了最后一个Inserted Id演示,您甚至可以在模型中绑定它。视图:在视图中,您可以设定:
输出量: