从URL中隐藏控制器名称

本文关键字:控制器 隐藏 URL | 更新日期: 2023-09-27 18:12:43

这个问题是关于最新的ASP稳定版本的。网络核心。

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

www.example.com/About

和非:www.example.com/Home/About

我的代码:

在新启动的ASP。Net Core App,在Startup.cs文件中,有一个Configure函数:

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吗?

从URL中隐藏控制器名称

根据Asp。Net Core Routing文档

下面的代码应该允许你所描述的

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