如何让我的asp.net MVC路由在子文件夹中使用默认操作?

时间:2015-11-04 15:22:12

标签: asp.net-mvc routing

我有一个ASP.Net MVC应用程序,我需要将一段代码放在名为 web 的子文件夹中。

我希望用户能够只输入“http://www.mywebsite.com/web/mycontroller”并将其默认为索引操作。

但是,我似乎无法弄清楚如何设置我的路由以默认操作。据我所知,它正在尝试使用controller = web ,action = mycontroller

我的路线代码如下:

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

    routes.MapRoute(
        "web", "web/{controller}/{action}",
        new { action = "Index" });
}

只要我在网址末尾包含/ index,请求就可以正常运行,但如果我将其排除在外,它似乎不想使用 action =“Index”默认值

我该如何做到这一点?

2 个答案:

答案 0 :(得分:0)

按如下方式更改您的代码:

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

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

答案 1 :(得分:0)

我最终使用了区域,这解决了我的问题。