假设我在控制器中有一个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方法。返回到调用动作的视图的最佳方法是什么?我应该在查询字符串中存储View名称吗?或在一个视图袋?也许有更好的方法?
答案 0 :(得分:2)
如果我正确理解你,你想分享这个动作,并从许多不同的来源调用它?
由于这是一个帖子操作,您可以在帖子集合中发送视图的名称作为帖子请求的一部分。
[HTTP POST]
public ActionView Save(string viewName)
{
return View(viewName);
}
答案 1 :(得分:0)
我会使用不同的操作并重定向到调用网址。该模式称为post redirect get,并且经常使用。
通过这种方式,您可以获得清晰的网址并刷新浏览器仍然有效。你可能会认为这会给你一些重复的代码。将代码保存在ViewModel和Service中,一切都应该没问题。
像这样的东西:
[HTTP POST]
public ActionView SaveCustomer(string viewName)
{
return RedirectToAction("DisplayCustomer")
}
[HTTP POST]
public ActionView SaveProject(string viewName)
{
return RedirectToAction("DisplayProject")
}