You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

跨文件夹访问页面:Asp.Net MVC中ActionLink跳转异常问题

解决Html.ActionLink跳转路径错误的问题

嘿,我来帮你搞定这个跳转问题!你遇到的问题核心是调用Html.ActionLink时参数顺序搞错了,导致路由系统解析出了错误的路径。

问题根源

你之前写的代码:

@Html.ActionLink("Edit", "Researchers","Edit", new { id = item.ResearcherID })

这个调用匹配的是ASP.NET MVC中一个不太常用的重载:ActionLink(string linkText, string actionName, object routeValues, object htmlAttributes)。这里的"Researchers"被当成了动作名,"Edit"被当成了路由参数的一部分,再加上默认控制器是Home,就出现了你看到的奇怪路径http://localhost:12345/Home/%20Researchers?Length=4。

正确的写法

你需要使用带控制器名的正确重载,有两种可靠的方式:

方式1:严格遵循参数顺序

确保参数顺序是:链接文本 → 动作名 → 控制器名 → 路由参数 → HTML属性,最后一个null是用来占位HTML属性的(如果不需要HTML属性的话):

@Html.ActionLink("Edit", "Edit", "Researchers", new { id = item.ResearcherID }, null)

方式2:使用命名参数(更清晰,不易出错)

直接给每个参数指定名称,完全不用记顺序,可读性也更强:

@Html.ActionLink(
    linkText: "Edit",
    actionName: "Edit",
    controllerName: "Researchers",
    routeValues: new { id = item.ResearcherID },
    htmlAttributes: null
)

效果验证

用上面两种写法,点击链接后都会正确跳转到http://localhost:12345/Researchers/Edit/{你的id值}路径,完美匹配你的目标页面位置。

内容的提问来源于stack exchange,提问作者James

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:44:25