加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 区域内的Asp.Net MVC IgnoreRoute

发布时间:2020-12-16 06:36:29 所属栏目:asp.Net 来源:网络整理
导读:如何忽略某个区域内的路线? 我在我的MVC应用程序中有验证码.它从GenericHanlder(.ashx)加载它的图像,所以如果我不使用区域它可以正常工作,如果我只是忽略来自该URL的路由. 即: 在Global.asax中 routes.IgnoreRoute(Counts/{filename}.{ashx}/{*pathinfo});
如何忽略某个区域内的路线?

我在我的MVC应用程序中有验证码.它从GenericHanlder(.ashx)加载它的图像,所以如果我不使用区域它可以正常工作,如果我只是忽略来自该URL的路由.

即:
在Global.asax中

routes.IgnoreRoute(Counts/{filename}.{ashx}/{*pathinfo});//Counts is the controller name without an area

问题是最近我将文件迁移到了不同??的区域,并且修改了要忽略的路径的路径.现在它:

Admin/Acounts/Users/captcha.ashx?guid=3565465689789hfghfdf

所以我尝试在Global.asax中的routes.IgnoreRoutes方法中更改该路径:

routes.IgnoreRoute(Admin/Acounts/Users/{filename}.ashx/{*pathinfo});

但它不再起作用.我已经尝试在RegisterRerea方法中忽略该路由,在AreaRegistrationFile中:

context.Routes.IgnoreRoute("Admin/Accounts/Users/{filename}.ashx/{*pathinfo}");

但这也是最重要的工作.

任何想法如何忽略一个区域的路线?

解决方法

IgnoreRoute实际上只是对Add(new Route())的调用,Route的RouteHandler参数设置为新的StopRoutingHandler. StopRoutingHandler告诉URL路由模块忽略路由并获取下一行内联HttpHandler.

您知道路线注册对声明的顺序很敏感.我的猜测是你在其他路线已经捕获之后宣布你的IgnoreRoute.

如果这些信息对您没有帮助,请发布您的路线注册的全部内容,因为它们将帮助我们给您答案.

此外,如果您使用http://haacked.com/archive/2008/03/13/url-routing-debugger.aspx提供的源代码来调试路由,则可以更轻松地找到问题的原因.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读