C# 返回原始视图

C# 返回原始视图,c#,asp.net-mvc,asp.net-mvc-4,C#,Asp.net Mvc,Asp.net Mvc 4,假设我在控制器中有一个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

假设我在控制器中有一个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")
    }