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

FileResult类型控制器方法文件不存在时如何跳转至登录页面

报错原因

你定义的方法返回类型固定为FileResult,但Redirect("~/Login")返回的是RedirectResult类型,二者不存在继承兼容关系,因此会触发类型转换异常。

解决方案

直接修改方法的返回类型即可:

  • 若使用ASP.NET Core,将返回值改为IActionResult
  • 若使用ASP.NET MVC 5及更早的.NET Framework版本,将返回值改为ActionResult

IActionResult/ActionResult是所有控制器返回结果的公共父类,同时兼容FileResult和RedirectResult类型,修改后完全匹配业务需求,不会影响原有逻辑的正常运行。

修改后参考代码

[HttpGet]
public IActionResult GetFile(string fileManagerGuidId,string accessGroup)
{
    var FileInfo = GetFile(fileManagerGuidId);
    if (FileInfo != null)
    {
        FileManagerLog _filemanagerLog = new FileManagerLog();
        _filemanagerLog.CustomerId =Request.Cookies["customerid"] != null ? 
        Convert.ToInt32(Request.Cookies["customerid"].Value) : 0;
        _filemanagerLog.FileManagerGuid = new Guid(fileManagerGuidId);
        SaveFileManagerLog(_filemanagerLog);
        byte[] fileBytes = FileInfo.FileData;
        return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, 
        FileInfo.FileName);
     }
     else
     {
         return Redirect("~/Login");
     }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 08:09:01