我正在使用WebForms中的路由功能来清理URL。我将所有的.aspx文件存储在/Pages目录下,并通过干净的URL路由到它们。目前,我仍然可以通过导航到例如/Pages/Home.aspx来访问这些文件。如何在我的路由表中抛出404或重定向到另一个页面?以下是我尝试过的方法:
routes.RouteExistingFiles = true;
routes.Ignore("{resource}.aspx/{*pathInfo}");
routes.Ignore(@"*\.aspx");
routes.MapPageRoute("Home", "", "~/Pages/Home.aspx");
这完全不起作用,我需要一些建议。
如果我尝试访问MVC网站上的物理文件,我会得到以下错误:
对象引用未设置为对象的实例。
我能在WebForms上做到吗?
Ignore(@"*\.aspx");
- 你明确要求不路由所有的aspx
文件。你还需要一些匹配 "pages/{name}.aspx" URL 的路由(这是你的 404 报告应该出现的地方)。 - Alexei Levenkov