0

假设我在控制器中有一个 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 方法。返回到称为操作的视图的最佳方法是什么?我应该将视图名称存储在查询字符串中吗?或在视图袋中?也许有更好的方法?

4

2 回答 2

2

如果我对您的理解正确,您想分享此操作并从许多不同的来源调用它吗?

由于这是一个发布操作,您可以将发布集合中的视图名称作为发布请求的一部分发送。

    [HTTP POST]   
    public ActionView Save(string viewName)
    {
      return View(viewName);
    } 
于 2013-06-08T23:25:19.593 回答
0

我会使用不同的操作并重定向到调用 url。该模式被称为 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")
    } 
于 2013-06-08T23:35:21.203 回答