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

使用RedirectToAction时始终传递空字符串参数的问题

问题解决:RedirectToAction传递字符串参数为null的问题

问题原因

你当前代码中,ReadFile方法读取文件内容后,直接通过RedirectToAction("FileReader", "File", fileContent)传递字符串参数,但重定向会发起新的GET请求,直接传字符串的方式无法被MVC正确绑定到FileReader方法的fileContent参数,导致接收值为null。

解决方案

方案1:用匿名对象明确指定参数名(推荐,适合短内容)

修改RedirectToAction的调用方式,将参数封装为匿名对象,MVC会自动将其转为URL查询字符串传递:

return RedirectToAction("FileReader", "File", new { fileContent = fileContent });

重定向后的URL会带上?fileContent=读取到的内容,FileReader方法就能正确接收参数值。

方案2:用TempData传递(适合长内容)

如果文件内容较长,查询字符串可能超出长度限制,可使用TempData暂存数据:
在ReadFile方法中:

TempData["FileContent"] = fileContent;
return RedirectToAction("FileReader", "File");

修改FileReader方法读取数据:

public ActionResult FileReader()
{
    string fileContent = TempData["FileContent"] as string;
    return View(new FileContentViewModel() { FileContent = fileContent });
}

注意:TempData仅在下一次请求中有效,刚好适配重定向场景。

额外检查点

  • 确认fileContent本身不为空:在ReadFile方法中加断点或日志,验证reader.ReadLine()是否读取到了有效内容(空文件会导致值为null)。
  • 路由配置:如果自定义了路由规则,确保没有阻止查询字符串参数的传递(方案1的查询字符串方式不受路由规则影响)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 01:27:23