MapPageRoute 在 Global.asax 中抛出错误

MapPageRoute is throwing error in Global.asax

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

我正在使用 .net Framework 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 的引用。没错。

欢迎使用 Whosebug!

尽管 .MapPageRoute() 存在于 System.Web.Routing 命名空间中,但这仅适用于 .NET 版本 4.0 及更高版本。如果您查看 Microsoft documentation,您会在页面底部看到一个名为 "Applies To".

的标题

该部分应出现在所有页面上,因此每当您遇到 Error CS1061 时,都值得检查文档以查看它是否存在于您所定位的 .NET 版本中。

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