ASP.Net MVC 3 - 在POST中间更改URL

时间:2013-05-08 21:14:10

标签: c# asp.net .net asp.net-mvc asp.net-mvc-3

假设我有这样的行动:

[HttpPost]
public ActionResult(MyObject obj)
{
  //Do a SQL insert that gets an Id for obj

  //Do some long-running operation in the background - don't wait for it to finish

  //Return a report of the object
  return View(obj);
}

有没有办法在POST后修改网址,以便最后显示?id=1234?执行GET的操作相同(就像用户共享页面一样),我只想显示报告。

1 个答案:

答案 0 :(得分:2)

您应该使用RedirectResult并将用户重定向到新网址。

如果你这样做,你就无法将任何东西传递给视图。

通常的做法是将其存储在TempData变量中:

[HttpPost]
public ActionResult(MyObject obj)
{
  //Do a SQL insert that gets an Id for obj

  //Do some long-running operation in the background - don't wait for it to finish
  TempData["obj"] 0 obj;
  //Return a report of the object
  return new RedirectResult();
}

您无法以编程方式更改服务器的URL。 如果您不想使用重定向,则可以在页面加载后使用JavaScript更改