【问题标题】:How to use MVC MapRoute to match a filename extension w/o regards to the path?如何使用 MVC MapRoute 匹配与路径无关的文件扩展名?
【发布时间】:2021-02-16 16:28:20
【问题描述】:

我正在尝试使用 MVC MapRoute 重定向具有特定扩展名的任何文件,无论路径信息是什么 - 就像这样:

www.mywebsite.com/blah.xyz
www.mywebsite.com/whatever/hithere.xyz
www.mywebsite.com/test/morestuff/kittens.xyz
www.mywebsite.com/anything/everything/nothing/testing.xyz
www.mywebsite.com/1/2/3/4/5/6/7/8/9/alphabits.xyz

我创建了一个 routeBuilder,我拥有的 MapRoute 看起来像

routeBuilder.MapRoute("", "{filename}.xyz", new { controller = "Custom", action = "SpecialRedirect" });

我不确定如何将任何带有 .xyz 扩展名的页面/文件请求发送到处理方法,但是,我不确定如何忽略路径的其余部分。

有什么想法吗?

【问题讨论】:

    标签: c# asp.net-mvc .net-core routes


    【解决方案1】:

    看起来他们没有办法做到这一点,所以我求助于一堆这些。

       routeBuilder.MapRoute("", "{filename}.xyz",
            new { controller = "Custom", action = "SpecialRedirect" });
        
    routeBuilder.MapRoute("", "{a}/{filename}.xyz",
        new { controller = "Custom", action = "SpecialRedirect" });
    
    routeBuilder.MapRoute("", "{a}/{b}/{filename}.xyz",
        new { controller = "Custom", action = "SpecialRedirect" });
    
    routeBuilder.MapRoute("", "{a}/{b}/{c}/{filename}.xyz",
        new { controller = "Custom", action = "SpecialRedirect" });
    
    routeBuilder.MapRoute("", "{a}/{b}/{c}/{d}/{filename}.xyz",
        new { controller = "Custom", action = "SpecialRedirect" });
    
    routeBuilder.MapRoute("", "{a}/{b}/{c}/{d}/{e}/{filename}.xyz",
        new { controller = "Custom", action = "SpecialRedirect" });
    

    如果有人有更好的方法(这确实有效,但是对我来说很难看),请回答。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-04
      • 2014-09-03
      • 1970-01-01
      • 2011-07-31
      • 2019-04-22
      • 2021-12-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多