【问题标题】:Razor Pages add extension in routingRazor Pages 在路由中添加扩展
【发布时间】:2019-01-29 20:46:28
【问题描述】:

在 ASP.NET Core Razor 页面中,如何将路由添加到所有页面,例如用于扩展的“.html”。

示例: /home 变成 /home.html

【问题讨论】:

    标签: c# razor asp.net-core .net-core razor-pages


    【解决方案1】:

    使用URL重写中间件,试试如下代码:

    1.在配置中

    app.UseRewriter(new RewriteOptions()
                               .Add(RewriteRules.RedirectRequests)
                               .Add(RewriteRules.ReWriteRequests)
                               );
    

    2.自定义一个包含RedirectRequests和ReWriteRequests的类

       public class RewriteRules
    {
        public static void RedirectRequests(RewriteContext context)
        {
            var request = context.HttpContext.Request;
    
            if (request.Path.Value.EndsWith("/", StringComparison.OrdinalIgnoreCase))
            {
                context.HttpContext.Response.Redirect("/Home.html");
            }
            else if(!request.Path.Value.EndsWith(".html", StringComparison.OrdinalIgnoreCase))
            {
                context.HttpContext.Response.Redirect($"{ request.Path.Value }.html");
            }
        }
    
        public static void ReWriteRequests(RewriteContext context)
        {
            var request = context.HttpContext.Request;            
    
            if (request.Path.Value.EndsWith(".html", StringComparison.OrdinalIgnoreCase))
            {
                context.HttpContext.Request.Path = context.HttpContext.Request.Path.Value.Replace(".html","");
    
            }
        }
    
    }
    

    参考:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/url-rewriting?view=aspnetcore-2.1&tabs=aspnetcore2x

    【讨论】:

      猜你喜欢
      • 2018-12-05
      • 2020-03-24
      • 2018-07-18
      • 2019-07-05
      • 2012-03-09
      • 2021-04-01
      • 2019-03-25
      • 2022-01-07
      • 2019-07-02
      相关资源
      最近更新 更多