2014-04-17 68 views
0

我在配置路由时遇到问题。我的路由配置如下:c#中的MVC5路由#

 routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}", 
      defaults: new { controller = "Somepage", action = "Index", id = UrlParameter.Optional } 
     ); 

现在我有两个控制器Sompage和Somepage2和两个视图文件夹Somepage和Somepage2。 在我的layout.cshtml中,我有链接到Somepage和Somepage2。到Somepage的链接工作正常,但是到Somepage2的链接不会呈现。在布局文件的链接是

@Html.ActionLink("some page on somepage2", "somepageonsomepage2", "Somepage2", new { target = "_blank" }) 

当我点击这个链接它试图带我到localhost/SomePage的/ somepageonsomepage2 当我想去本地主机/ Somepage2/somepageonsomepage2

我不知道在哪里我错了。

回答

1

您需要使用ActionLink的正确超载来指定您的控制器。默认情况下,操作链接的控制器将成为视图的控制器。所以,如果你有文件夹Home控制器HomeController和视图Index,一个动作链接的默认控制器将HomeController

@Html.ActionLink("some page on somepage2", "somepageonsomepage2", "Somepage2", null, new { target = "_blank" })