如何解决ASP.NET路由-如果路径存在,则GetRouteData不起作用
|| 我有一个“ 0”,它会拦截所有请求并根据路由规则从数据库加载数据。但是,我一直都遇到一个问题。GetRouteData
仅在路径不存在时起作用:
var routeData = RouteTable.Routes.GetRouteData(new HttpContextwrapper(HttpContext.Current));
假设有一个URLhttp://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 举报,一经查实,本站将立刻删除。