返回到原始视图

本文关键字:视图 原始 返回 | 更新日期: 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")
    }