我在webforms中使用路由来清理网址。我将所有.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网站上的物理文件,我会收到以下信息:
对象引用未设置为对象的实例。
我可以在网络表单上执行此操作吗?
答案 0 :(得分:0)
routes.RouteExistingFiles = true;
routes.MapPageRoute("Route1", "Pages/{page}.aspx", "~/404.aspx");
routes.MapPageRoute("Route2", "Pages/{folder}/{page}.aspx", "~/404.aspx");
您需要将其映射到抛出404而不是响应的页面,而不是忽略路径。希望这有助于其他人!