微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ASP.NET路由-如果路径存在,则GetRouteData不起作用

如何解决ASP.NET路由-如果路径存在,则GetRouteData不起作用

|| 我有一个“ 0”,它会拦截所有请求并根据路由规则从数据库加载数据。但是,我一直都遇到一个问题。
GetRouteData
仅在路径不存在时起作用:
var routeData = RouteTable.Routes.GetRouteData(new HttpContextwrapper(HttpContext.Current));
假设有一个URL
http://localhost/contact
的请求,如果文件系统中不存在该路径,我将获得与该URL相关的正确路由数据。当我想通过在路径“ 4”中创建一个aspx页面自定义该URL处的页面时,会出现问题。一旦这样做,
GetRouteData
就返回
null
。 我什至尝试创建一个新的
HttpContext
对象,但是如果该页面存在,我仍然无法检索路线数据。 有没有人遇到过这个问题?有解决方案/解决方法吗? 所有帮助将不胜感激。     

解决方法

RouteCollection.RouteExistingFiles
设置为true。
public static void RegisterRoutes(RouteCollection routes)
{
    // Cause paths to be routed even if they exists physically
    routes.RouteExistingFiles = true;

    // Map routes
    routes.MapPageRoute(\"...\",\"...\",\"...\");
}
不过要当心。 IIS7的行为与在Visual Studio中调试时使用的服务器略有不同。当我将应用程序部署到Web时,我对此有所了解。查看我提交给Microsoft Connection的反馈。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。