隐藏来自 URL 的控制器名称
Hiding controller name from URL
此问题与 ASP.Net Core 的最新稳定版有关。
就像我之前在 Whosebug 上浏览过的问题一样,我想要完成的是,当访问 Home
Views 文件夹中 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 吗?任何帮助将不胜感激。
根据 Asp.Net 核心 Routing 文档
类似下面的内容应该符合您的描述
routes.MapRoute(
name: "root",
template: "{action}/{id?}",
defaults: new { controller = "Home", action = "Index" });
此问题与 ASP.Net Core 的最新稳定版有关。
就像我之前在 Whosebug 上浏览过的问题一样,我想要完成的是,当访问 Home
Views 文件夹中 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 吗?任何帮助将不胜感激。
根据 Asp.Net 核心 Routing 文档
类似下面的内容应该符合您的描述
routes.MapRoute(
name: "root",
template: "{action}/{id?}",
defaults: new { controller = "Home", action = "Index" });