我正在使用ASP.NET 4.5并在我的Global.asax文件中使用以下路由规则:
RouteTable.Routes.MapPageRoute("defaultRoute", "{*value}", "~/default.aspx")
我要完成的是重定向动态生成的URL,格式如下:
以下是人们的实际情况:
我的问题是以上重定向所有请求 - 例如到axd或jpg文件。现在我可以为每个其他类型的文件添加排除项,如下所示:
RouteTable.Routes.Ignore("{resource}.axd/*pathInfo}")
但这会容易出错且乏味(例如,如果有人在项目中添加了另一种文件类型会发生什么?)。
所以,我想做的是这样的事情:
RouteTable.Routes.MapPageRoute("defaultRoute", "{*value}(where no suffix)", "~/default.aspx")
或者,用我的英语清楚:
如果URL没有后缀,则使用defaultRoute重定向到〜/ default.aspx
关于如何做到这一点的任何想法?
==
更新
我发现了MSDN article。似乎使用约束可能有助于实现我上面所说的......但我不确定如何......
==
更新2:
我现在有一个可以通过的解决方案。我添加了以下内容:
RouteTable.Routes.Ignore("{path}/{value}")
由于图像和其他文件保存在子目录中,因此强制排除它们。不过,我对此有两个担忧