当我尝试下载文件时,我收到此错误“请求URL太长”。该网址显示我要下载的数据但不下载。
下载
时如何解决请求网址太长错误我的代码
的Javascript
<script>
function DownloadIndexController(possID) {
$.ajax({
url: '@Url.Action("DownloadIndex", "Poss")',
contentType: 'application/json; charset=utf-8',
datatype: 'json',
data: { possID: possID },
type: "GET",
success: function (returnValue) {
window.location = '/DownloadIndex/Poss' + returnValue;
}
})
}
</script>
控制器
[HttpGet]
public virtual ActionResult DownloadIndex(int possID)
{
try
{
possFilename = possFilename.Replace(",", ",");
string fullPath = Filelocation + possFilename;
return File(fullPath, System.Net.Mime.MediaTypeNames.Application.Octet, possFilename);
}
catch (Exception ex)
{
throw ex;
}
答案 0 :(得分:2)
您无法使用ajax以这种方式下载文件。 您需要做的是为网格中的每个项目生成正常的下载链接,例如:
@Html.ActionLink("Download", "DownloadIndex", "Home", new { possID = "123" }, null)
Home
是控制器的名称,您必须为我的示例中的每个项目而不是硬编码的possID
动态添加123
。
答案 1 :(得分:1)
在您的代码中,您使用ajax下载文件,然后在'/DownloadIndex/Poss'
您可能只想重定向到该文件,而根本不使用Ajax:
<script>
function DownloadIndexController(possID) {
window.location = '/DownloadIndex/Poss?possID=' + possID;
}
</script>