c# - 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 的参考。这是正确的。
解决方案
欢迎来到 StackOverflow!
尽管.MapPageRoute()
存在于System.Web.Routing
命名空间中,但这仅适用于 .NET 版本4.0
和更高版本。如果您查看Microsoft 文档,您会在页面底部看到一个名为“适用于”的标题。
此部分应出现在所有页面上,因此无论何时遇到一个Error CS1061
,都值得检查文档以查看它是否存在于您所针对的 .NET 版本。
要解决此问题,最简单的做法是将您的项目从 .NET 3.5 升级到 4.0,或者(如果这不适合您的情况)找到另一种方法来进行 URL 重写。
推荐阅读
- php - 根据 WooCommerce 购物车总数和月份范围添加或删除免费产品
- jenkins - 在 jenkins 管道 shell 命令中传递 maven 参数
- html - 如何将我的引导 div 居中在屏幕中间?
- mysql - EER图中实体的定义
- neo4j - 我可以使用 1 个密码命令从 csv 文件加载节点和关系吗?
- node.js - 尝试通过 populate() 获取用户信息,但返回空数组且没有错误
- nlp - NLP 转换器 - PyTorch RuntimeError: shape [5, -1, 32783] 对于大小为 655360 的输入无效
- python - Tkinter 无法打开图片
- c++ - 根据模式用数字填充 C++ 数组
- c - AES256 加密仅加密前 16 个字符。C语言