gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 23:31:59 26 4
gpt4 key购买 nike

如何忽略区域内的路线?

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

IE:
在 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});

但它不再起作用了。我已经尝试在RegisterArea方法中忽略该路由,在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 提供的源代码对于调试路线,找到问题的原因会容易得多。

关于asp.net-mvc - 区域内的 Asp.Net MVC IgnoreRoute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3696224/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com