2011-06-10 56 views
3

在我的控制器我要回一个视图只是URL不是我所期待的,因为它与它在操作方法的名称替换工作正常。网址是不正确时返回查看

http://hostname/Controller/SubmitTicket 

instead of 

http://hostname/Controller/Detail 

在这种情况下,我无法做出重定向。

public ActionResult Detail() 
    { 
     return View(); 
    } 

    public ActionResult SubmitTicket() 
    { 
     return View("Detail"); 
    } 

<h2>Detail</h2> 

<% using (Html.BeginForm("SubmitTicket", "Home")) 
    { %> 
     <input id="Submit1" type="submit" value="submit" /> 
    <% } %> 

+2

你如何生成的网址? – ZippyV 2011-06-10 20:22:42

+0

也发布您的路线。 – Fourth 2011-06-10 20:24:29

+0

@Fourth - 我如何发布我的路线? – Rod 2011-06-10 20:38:44

回答

1

在MVC中使用的网址将始终以行动。

我认为发生了什么是你正在做一个POST到http://hostname/Controller/SubmitTicket,然后返回Detail视图。在这种情况下,该URL将成为您提交给的URL。

因此,如果你想要一个不同的URL,一个选项是你需要改变你的SubmitTicket动作的名字或者为它定义一个不同的路由。但我认为这不会解决您的问题。

如果您正在发帖,并希望在帖子后向用户显示详细信息页,请使用Post/Redirect/Get pattern

public ActionResult Detail() 
{ 
    return View(); 
} 

public ActionResult SubmitTicket() 
{ 
    RedirectToAction("Detail") 
}