【问题标题】:ASP.Net Core default route as /Home with it shown by defaultASP.Net Core 默认路由为 /Home,默认显示
【发布时间】:2018-08-13 12:59:51
【问题描述】:

您好,我在 ASP.Net Core 中使用 mapRoutes,我可以设置默认控制器路由。启动应用程序时,入口点将是默认 Home,但将显示的只是 https://localhost:43594,而不是最后显示 /Home。

有没有办法明确强制执行?

【问题讨论】:

  • 你的路线是什么样子的

标签: routes asp.net-core-mvc


【解决方案1】:

有几种解决方法:

  • 解决方法 1:您可以按照here 所述删除默认值
  • 解决方法 2:创建不同的默认操作并从那里重定向到 /Home/Index,如 here 所述
  • 解决方法 3:检查当前 URL,如果它是 root 则重定向,如 here 所述

【讨论】:

    【解决方案2】:

    要更改路由 URL,您可以尝试 URL Rewriting MiddlewareCustom 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") 什么都不做。也许正则表达式不正确?
    猜你喜欢
    • 2020-05-31
    • 2017-07-08
    • 1970-01-01
    • 2021-12-18
    • 2010-11-01
    • 2021-10-17
    • 2017-11-27
    • 1970-01-01
    • 2015-11-18
    相关资源
    最近更新 更多