Jon*_*ood 6 c# asp.net-core razor-pages
我无法相信找到如此简单的任务有多么令人沮丧。
我想创建一个带有page查询参数的链接。
我尝试了以下方法:
<a asp-page="Index" asp-route-page="10">Character Classifications</a>
Run Code Online (Sandbox Code Playgroud)
这是生成的链接。
<a href="/">Character Classifications</a>
Run Code Online (Sandbox Code Playgroud)
我已经谷歌搜索了一个小时。谁能告诉我Razor Pages创建带有查询参数的链接的方法?
另外,如果我链接到当前页面,是否有快捷方式?
柯克的回答开门见山,但我想详细说明为什么这是不可能的以及保留字背后的原因。
官方原因——取自 github 问题——是这样的:
这个决定是在 2007 年 MVC 首次发布期间做出的。路由数据是用户代码可以查看、检查和修改的数据。路由值的“键”经常在用户提供的路由和对 api(如 Url.Route 和 Url.Action)的调用中键入。重要的是,任何“键”也必须是有效的 C# 标识符,以使其易于与接受匿名类型对象的 API 一起使用。我们决定不破坏页面,因为与其他简单的路由值相比,它会显得深奥且奇怪。
我认为人们可以争论使用“页面”作为路线是否深奥 - 我个人不这么认为 - 但也许这只是我。
由于其他几个人抱怨保留字问题,特别是您没有收到警告或合理的错误消息,因此打开了 github 问题以使用分析器解决此问题:
遗憾的是直到今天(2019 年 8 月)这个问题还没有结束。
有一些讨论是为了重新设计 .NET 3.0 的内部结构,以便在路由时不再需要保留关键字。
但从今天开始 - 请注意不要在路由中使用任何保留字。