文件下载无法到达控制器引发405错误



我正试图从页面中调用一个文件下载例程,但它在控制器中执行操作之前就抛出了405错误。以下是我调用例程的方式:

<a href="@Url.Action("DownloadFile", new { controller="Attachment" , attachmentId=Model.IssueData.AttachmentList[i].attachmentId })" class="fa fa-download "></a>

它似乎生成了正确的字符串:https://localhost:44339/Attachment/DownloadFile?attachmentId=4

然而,它从未达到附件控制器的下载文件操作:

[ValidateAntiForgeryToken]
[HttpPost]
public FileResult DownloadFile(int attachmentId)
{
AttachmentModel file = _adoSqlService.DownloadFile(attachmentId);
return File(file.aFileData, file.aFileType, file.aFileName);
}

页面没有击中控制器,而是抛出405错误

您的a标记中的一个是HttpGet请求,但您在后台使用[HttpPost],这将导致该方法不被允许。

您可以按如下方式修改您的操作:

[HttpGet]
public FileResult DownloadFile(int attachmentId)
{
AttachmentModel file = _adoSqlService.DownloadFile(attachmentId);
return File(file.aFileData, file.aFileType, file.aFileName);
}

相关内容

  • 没有找到相关文章

最新更新