【发布时间】:2018-08-13 12:59:51
【问题描述】:
您好,我在 ASP.Net Core 中使用 mapRoutes,我可以设置默认控制器路由。启动应用程序时,入口点将是默认 Home,但将显示的只是 https://localhost:43594,而不是最后显示 /Home。
有没有办法明确强制执行?
【问题讨论】:
-
你的路线是什么样子的
您好,我在 ASP.Net Core 中使用 mapRoutes,我可以设置默认控制器路由。启动应用程序时,入口点将是默认 Home,但将显示的只是 https://localhost:43594,而不是最后显示 /Home。
有没有办法明确强制执行?
【问题讨论】:
要更改路由 URL,您可以尝试 URL Rewriting Middleware 或 Custom Middleware。
以下是Startup 中的可用选项:
重写网址
app.UseRewriter(new RewriteOptions().AddRewrite("/","/Home",true));
重定向网址
app.UseRewriter(new RewriteOptions().AddRedirect("/", "/Home"));
自定义中间件
app.Use(async (context, next) =>
{
if (context.Request.Path == "/")
{
context.Response.Redirect("Home/", true);
return;
}
await next();
});
在app.UseMvc之前使用上述选项
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
【讨论】:
AddRedirect("/", "/Home") 什么都不做。也许正则表达式不正确?