我正在使用自定义入站URL路由“玩”,并遇到了问题。ASP.NET MVC5定制入站路由
当我将自定义路由传递给一个要检查的URL时,以*。+结尾,当我提交请求时,我的类不会被触发。
一个例子URL是“〜/老/ windows.html”
当我通过这个在调试步骤,我RouteBase执行不火。如果我编辑我传递给我的路由的构造函数的url以尝试匹配“〜/ old/windows”,我的实现将按预期启动。
再说一遍,如果我将URL更改为“〜/ old/windows”。问题再次出现。
我的路线实现如下: -
public class LegacyRoute : RouteBase
{
private string[] _urls;
public LegacyRoute(string[] targetUrls)
{
_urls = targetUrls;
}
public override RouteData GetRouteData(HttpContextBase httpContext)
{
RouteData result = null;
string requestedURL = httpContext.Request.AppRelativeCurrentExecutionFilePath;
if (_urls.Contains(requestedURL, StringComparer.OrdinalIgnoreCase))
{
result = new RouteData(this, new MvcRouteHandler());
result.Values.Add("controller", "Legacy");
result.Values.Add("action","GetLegacyURL");
result.Values.Add("legacyURL", requestedURL);
}
return result;
}
public override VirtualPathData GetVirtualPath(RequestContext requestContext, RouteValueDictionary values)
{
return null;
}
}
在我已经注册了,像这样我的路线RoutesConfig文件: -
routes.MapMvcAttributeRoutes();
routes.Add(new LegacyRoute(new[]{"~/articles/windows.html","~/old/.Net_1.0_Class_Library"}));
任何人都可以指出为什么有问题?