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

Razor视图点击下载链接时控制器参数接收为null问题求助

解决Razor视图ActionLink传参为null的问题

我来帮你排查这个问题,大概率是你用错了Html.ActionLink的重载方法导致的!

先看你的原代码:

@Html.ActionLink("Download", "Download", "Admin", new { filename = Model.Resume })

这里的问题在于,Html.ActionLink有多个重载版本,当你传入四个参数时,第四个参数会被框架识别为HTML属性(比如class、id这类元素属性),而不是路由参数。这就导致你的filename参数根本没被当作路由值传递到控制器,所以控制器接收到的自然是null。

修正方案

你需要在最后额外添加一个null参数,明确告知框架:第四个参数是路由值,第五个是HTML属性(这里我们不需要设置任何HTML属性,所以传null):

@Html.ActionLink("Download", "Download", "Admin", new { filename = Model.Resume }, null)

额外排查点

如果修正后还是出现null的情况,你可以检查这两个地方:

  • 确认Model.Resume本身是否有值:在视图里临时输出@Model.Resume,看看这个属性是不是本身就是null或者空字符串。
  • 检查路由配置:如果是自定义路由规则,要确保规则允许传递filename参数。默认的路由({controller}/{action}/{id})虽然没有包含filename,但用查询字符串的方式依然可以正常传递,所以这个问题概率不大,但自定义路由时需要确认。

快速验证方法

你可以右键点击页面上的下载链接,查看它的URL地址,看看里面有没有?filename=xxx的参数部分。如果有,说明参数已经正常传递,问题可能出在控制器逻辑;如果没有,那还是视图的ActionLink写法问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:19:40