首页 > 解决方案 > MapPageRoute 在 Global.asax 中引发错误

问题描述

我正在尝试重新编写 SEO 友好模式的 URL。最好的方法是删除文件扩展名。我访问了一些建议使用 Global.asax 文件的教程。

我正在使用 .net 框架 3.5,其中出现以下错误:

错误 CS1061“RouteCollection”不包含“MapPageRoute”的定义,并且找不到接受“RouteCollection”类型的第一个参数的可访问扩展方法“MapPageRoute”(您是否缺少 using 指令或程序集引用?)

我在 global.asax 文件中使用下面的代码进行路由。

<%@ Application Language="C#" %>
<%@ Import Namespace="System.Web.Routing" %>
<script runat="server">
    void Application_Start(object sender, EventArgs e)
    {
        RegisterRoutes(RouteTable.Routes);
    }

    static void RegisterRoutes(RouteCollection routes)
    {
        routes.MapPageRoute("Customers", "Customers", "~/Customers.aspx");
        routes.MapPageRoute("CustomerDetails", "Customers/{CustomerId}", "~/CustomerDetails.aspx");

    }
</script>

请帮助如何解决此问题。

我已经检查了 system.web.routing 的参考。这是正确的。

标签: c#url-rewritingurl-routingglobal-asax

解决方案


欢迎来到 StackOverflow!

尽管.MapPageRoute()存在于System.Web.Routing命名空间中,但这仅适用于 .NET 版本4.0和更高版本。如果您查看Microsoft 文档,您会在页面底部看到一个名为“适用于”的标题。

此部分应出现在所有页面上,因此无论何时遇到一个Error CS1061,都值得检查文档以查看它是否存在于您所针对的 .NET 版本。

要解决此问题,最简单的做法是将您的项目从 .NET 3.5 升级到 4.0,或者(如果这不适合您的情况)找到另一种方法来进行 URL 重写。


推荐阅读