返回到原始视图
本文关键字:视图 原始 返回 | 更新日期: 2023-09-27 18:17:46
假设我在控制器中有一个POST操作,它将记录保存到数据库并返回到视图。我这样做:
[HTTP POST]
public ActionView Save()
{
//....do stuff
return View(); //This will return back to /ControllerName/Index
//or I can do something like this:
return View("ViewName") //this will return to /ControllerName/ViewName
}
但是,假设我从多个视图调用Save方法。返回到调用动作的视图的最佳方式是什么?我应该在查询字符串中存储视图名称吗?还是放在观景袋里?也许有更好的方法?
如果我理解正确的话,您想要共享此操作并从许多不同的来源调用它?
因为这是一个post操作,所以你可以将post集合中的视图名称作为post请求的一部分发送。
[HTTP POST]
public ActionView Save(string viewName)
{
return View(viewName);
}
我将使用不同的操作并重定向到调用url。该模式被称为post redirect get,并且经常使用。
这样你可以得到清晰的url并且刷新浏览器仍然有效。您可能认为这会得到一些重复的代码。把代码保留在ViewModel和Service中,一切都应该没问题。
像这样:
[HTTP POST]
public ActionView SaveCustomer(string viewName)
{
return RedirectToAction("DisplayCustomer")
}
[HTTP POST]
public ActionView SaveProject(string viewName)
{
return RedirectToAction("DisplayProject")
}