验证码控件在使用URL路由(ASP.NET 4.0 WebForms)时无法正常工作。

6

ASP.NET 4.0 C# WebForms

我在全局.asax中添加了route.Ignore("{resource}.axd/{*pathInfo}");以使我的ajax正常工作。

该控件是“MSCaptcha”。

它在源文件中显示路径http://localhost:666/Project/CaptchaImage.axd?guid=96f830ee-6fb9-42ad-9ff4-d6484ffdcbe4,但没有显示“图像”。

我能否在全局.asax中添加一些内容以使验证码控件正常工作? 有什么建议吗?


为了明确起见,当路由为localhost:666/ProjectFolder/时,它可以正常工作。但是当路由为localhost:666/ProjectFolder/Index/SubPage/时,它无法正常工作。它会寻找Index/Subpage/CaptchaImage.axd。 - Kasper Skov
2个回答

1

正如Kenneth所提到的那样,您确实需要将其设置为在不同级别上忽略。在我的应用程序中,我们只处理了一级深度。但是,您可以使用以下代码并设置多个级别。

routes.Ignore("{parent}/{sub}/{resource}.axd");

1

看起来你想在虚拟文件夹层次结构的不同深度忽略你的captchaImage.axd?这将需要通过路由处理多个段,这在你的情况下并不方便。更好的方法是将CaptchaImage.axd的位置“固定”到某个路径,通过路由忽略该路径,并始终引用该位置的CaptchaImage.axd。

有关asp.net路由的详细信息。 http://msdn.microsoft.com/en-us/library/cc668201.aspx


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接