2013-05-08 67 views
3

比方说,我有一个这样的动作:ASP.Net MVC 3 - 改变URL中POST

[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后的URL,这样它会显示?id=1234在最后的方法吗?对于进行GET有一个等效的操作(就像用户共享页面一样),并且我只想显示报告。

+1

使用重定向? – 2013-05-08 21:20:36

回答

2

您应该使用RedirectResult并将用户重定向到新的URL。

如果你这样做,你不能传递任何东西到视图中。

通常的做法是将其存储在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进行更改

+0

我用你提到的JavaScript选项,我不想运行一个新的动作呢。 – jonathanpeppers 2013-05-08 22:32:28