从URL隐藏控制器名称

时间:2016-10-12 18:10:59

标签: c# routes asp.net-core asp.net-core-mvc asp.net-core-1.0

这个问题与ASP.Net Core的最新稳定版本有关。

就像我之前在StackOverflow上浏览过的问题一样,我在Index Views文件夹中访问Home以外的任何其他视图时,我想要完成的是例如,访问About,网址为:

www.example.com/About

而不是:www.example.com/Home/About

我的代码:

在新启动的ASP.Net核心应用程序中,在Startup.cs文件中,有一个配置功能:

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) {
    app.UseMvc(routes =>
    {
        routes.MapRoute(
            name: "default",
            template: "{controller=Home}/{action=Index}/{id?}");
    });
}

我尝试过的事情:

我已尝试将路线更改为:

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

没有工作。我也试过插入这个:

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

routes.MapRoute(
    "OnlyAction",
    "{action}",
    new { controller = "Home", action = "Index" } 
);

但不幸的是,ASP.Net还没有认识到IgnoreRoute功能。

还有其他人使用Core遇到此问题吗?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:3)

根据Asp.Net Core Routing文档

以下内容应该允许你所描述的内容

routes.MapRoute(
    name: "root",
    template: "{action}/{id?}",
    defaults: new { controller = "Home", action = "Index" });
相关问题