C# 返回原始视图
假设我在控制器中有一个POST操作,它将记录保存到数据库并返回到视图。我会这样做: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
[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")
}