ASP.NET路由 - 如何响应.aspx请求的404

时间:2013-09-09 21:31:57

标签: c# asp.net asp.net-routing

我在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网站上的物理文件,我会收到以下信息:

对象引用未设置为对象的实例。

我可以在网络表单上执行此操作吗?

1 个答案:

答案 0 :(得分:0)

routes.RouteExistingFiles = true;
routes.MapPageRoute("Route1", "Pages/{page}.aspx", "~/404.aspx");
routes.MapPageRoute("Route2", "Pages/{folder}/{page}.aspx", "~/404.aspx");

您需要将其映射到抛出404而不是响应的页面,而不是忽略路径。希望这有助于其他人!