C# .net mvc路由贪婪正则表达式

C# .net mvc路由贪婪正则表达式,c#,.net,asp.net-mvc,regex,C#,.net,Asp.net Mvc,Regex,在我的global.asax.cs文件中。我添加一个条目 routes.MapRoute( "Static text", "Static/General/{filePath}", new { controller = "Static", Action = "General", filePath = "" }, // new { filePath = @"xxxx" } // greedy

在我的global.asax.cs文件中。我添加一个条目

       routes.MapRoute(
            "Static text",
            "Static/General/{filePath}",
            new { controller = "Static", Action = "General", filePath = "" },
          //  new { filePath = @"xxxx" } // greedy regular expression
        );

我想做的是从静态文件中获取内容并插入到我的视图页面中。如果我的文件路径位于根目录中(如1.txt),则此映射可以正常工作。但是,如果文件位于某些子目录(如staticfiles/1.txt)中,它将不起作用。因为路由模块将静态文件视为文件路径,并将1.TXT作为其他参数。我知道我需要做的是对filePath参数应用一些正则表达式技巧。但我不知道如何让正则表达式引擎一直读到url的末尾。有人能告诉我该怎么做吗?非常感谢。

尝试在文件路径之前放置一个asterix:


尝试将asterix放在文件路径之前:


测试过了,没用。我的控制器收到null作为文件路径值。您是否将其置于默认路由之前?是的,我已将其置于默认路由之前。这是我的第二个最后一个路由,默认路由是最后一个。我打开了phil haack的路由调试器,这是结果url:False Static/General/{*filePath}True{controller}/{action}/{id}。。。省略了其他信息我再次检查了代码,发现我已经取消了//new{filePath=@xxxx}//贪婪正则表达式部分的注释。愚蠢的我!我删除了这条线,现在你的方法非常有效。非常感谢。经过测试,不起作用。我的控制器收到null作为文件路径值。您是否将其置于默认路由之前?是的,我已将其置于默认路由之前。这是我的第二个最后一个路由,默认路由是最后一个。我打开了phil haack的路由调试器,这是结果url:False Static/General/{*filePath}True{controller}/{action}/{id}。。。省略了其他信息我再次检查了代码,发现我已经取消了//new{filePath=@xxxx}//贪婪正则表达式部分的注释。愚蠢的我!我删除了这条线,现在你的方法非常有效。非常感谢你。
routes.MapRoute(
    "Static text",
    "Static/General/{*filePath}",
    new { controller = "Static", Action = "General", filePath = "" }
);