MVC路由不能按需工作

时间:2015-06-23 08:38:14

标签: model-view-controller asp.net-mvc-routing

我试图在MVC中设置自定义路由,但遇到一些问题。

到目前为止,这是配置文件: -

public class RouteConfig
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");


        routes.MapRoute(
            name: "inbox",
            url: "inbox",
            defaults: new { controller = "Mail", action = "Inbox", id = UrlParameter.Optional }
        );


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

    }
}

这是我视图中的链接: -

@Html.ActionLink("Inbox", "inbox")

问题是输出html正在生成为http://localhost/Home/inbox

我只想让它成为http://localhost/inbox

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

您正在使用Html.ActionLink的错误重载。使用您正在使用的版本时,它使用当前上下文来确定控制器,而您希望使用Mail控制器。因此,要解决此问题,请将其更改为显式指定控制器,如下所示:

@Html.ActionLink("Inbox", "Inbox", "Mail")