如何在使用ASP.NET友好URL时忽略某些路由?
发布时间:2020-05-23 22:00:38 所属栏目:asp.Net 来源:互联网
导读:我成功使用ASP.NET友好URL,但我需要忽略特定Foo.aspx页面的路由(因为此页面需要POST数据,并且一旦重新路由POST数据在Page_Load()中不再可用!). 看起来使用ASP.NET友好URL会丢弃任何忽略路由的尝试.使用ASP.NET友好URL路由后,即使是忽略路由的MSDN example也
|
我成功使用ASP.NET友好URL,但我需要忽略特定Foo.aspx页面的路由(因为此页面需要POST数据,并且一旦重新路由POST数据在Page_Load()中不再可用!). 看起来使用ASP.NET友好URL会丢弃任何忽略路由的尝试.使用ASP.NET友好URL路由后,即使是忽略路由的MSDN example也不起作用: routes.Ignore("{*allaspx}",new {allaspx=@".*.aspx(/.*)?"});
并忽略到Foo.aspx的路由,代码看起来应该是这样,不是吗? routes.Ignore("{*fooaspx}",new { fooaspx = @"(.*/)?foo.aspx(/.*)?" });
Global.asax代码如下所示: public static void RegisterRoutes(RouteCollection routes) {
// This doesn't work whether I put this code before or after ASP.NET Friendly URLs code.
routes.Ignore("{*allaspx}",new { allaspx = @".*.aspx(/.*)?" });
routes.Canonicalize().Lowercase();
var settings = new FriendlyUrlSettings();
settings.AutoRedirectMode = RedirectMode.Permanent;
routes.EnableFriendlyUrls(settings);
}
void Application_Start(object sender,EventArgs e) {
RegisterRoutes(RouteTable.Routes);
}
这个问题has been asked on the ASP.NET Friendly URLs codeplex site,但没有得到答案. 谢谢你的帮助:) 解决方法感谢Damian Edwards的评论,我完全解决了这个问题,感谢Damian.我只需要从WebFormsFriendlyUrlResolver派生来覆盖方法ConvertToFriendlyUrl(),当url匹配我不想重定向的url时,使其成为no-op: using Microsoft.AspNet.FriendlyUrls.Resolvers;
public class MyWebFormsFriendlyUrlResolver : WebFormsFriendlyUrlResolver {
public MyWebFormsFriendlyUrlResolver() { }
public override string ConvertToFriendlyUrl(string path) {
if (!string.IsNullOrEmpty(path)) {
if (path.ToLower().Contains("foo")) { // Here the filter code
return path;
}
}
return base.ConvertToFriendlyUrl(path);
}
}
然后在Global.asax中,代码现在看起来像: public static void RegisterRoutes(RouteCollection routes) {
routes.Canonicalize().Lowercase();
var settings = new FriendlyUrlSettings();
settings.AutoRedirectMode = RedirectMode.Permanent;
routes.EnableFriendlyUrls(settings,new IFriendlyUrlResolver[] {
new MyWebFormsFriendlyUrlResolver() });
}
void Application_Start(object sender,EventArgs e) {
RegisterRoutes(RouteTable.Routes);
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 在Asp.Net MVC应用程序中使用Structuremap将
- asp.net-mvc – 将焦点放在不使用JavaScript的EditorFor上
- asp.net – 如何获取SignalR用户连接ID在外线中心类?
- asp.net-mvc – Uploadify(会话和身份验证)与ASP.NET MVC
- wcf – 我可以将system.serviceModel分成一个单独的.config
- 限制并发或不限制并发? (在单个ASP.NET请求中)
- asp.net – VS 2010失败调试:HttpException在LoadControl中
- asp.net+js 实现无刷新上传解析csv文件的代码
- asp.net-mvc – 如何在ASP.NET MVC中使用单选模式创建ListB
- ASP.NET – 上传大文件时如何显示错误页面(超过最大请求长度
推荐文章
站长推荐
- asp.net-mvc – SignalR 2依赖注入与Ninject
- asp.net – 找不到ID为“xxx”的UpdatePanel.如果
- asp.net-mvc – 一个ASP.NET MVC验证器,用于确保
- asp-classic – Request.BinaryRead(Request.Tot
- asp.net-mvc – MVC 4忽略DefaultModelBinder.Re
- asp.net-mvc-3 – SQL Server 2008连接字符串,用
- asp.net-mvc – 在asp.net mvc控制器中使用构造函
- asp.net – 无法检索元数据
- 强制ASP.Net MVC Bundle以某种顺序呈现javascrip
- 经典的asp字符编码
热点阅读
