ASP.NET Core中Html.ActionLink跳转URL异常问题咨询及适用性疑问
问题分析与解决办法
嘿,我来帮你搞定这个跳转的问题~
问题根源
你现在用的是Razor Pages项目(代码里的@page指令就是关键标识),但Html.ActionLink是专门为MVC项目设计的——它基于MVC的「控制器-动作」路由体系来生成URL,而Razor Pages用的是页面文件路径的路由规则,这俩路由逻辑不一样,所以才会生成不符合预期的https://localhost:7020/?action=Privacy&controller=Privacy。
正确的跳转写法(Razor Pages适用)
在Razor Pages里,你应该用专门的页面导航辅助方法:
- 使用
Html.PageLink:
<li>@Html.PageLink("PRIVACY PAGE", "/Privacy")</li>
- 或者手动结合
Url.Page写<a>标签:
<li><a href="@Url.Page("/Privacy")">PRIVACY PAGE</a></li>
这两种写法都会生成你预期的https://localhost:7020/Privacy URL。
关于Html.ActionLink的适用场景
没错,Html.ActionLink确实主要适用于MVC项目,它的核心是绑定控制器和对应的动作方法。Razor Pages有自己的一套导航工具,比如PageLink、Url.Page,更适配页面路由的模式,所以在Razor Pages里用这些会更顺畅。
内容的提问来源于stack exchange,提问作者Vinoth .R
相关产品推荐
相关产品推荐

