解决方案 »

  1.   

    你的后台Download这个action接收的是id参数,哪来的fileid?而且这个action应该接受的是get请求,为什么要post呢?
      

  2.   

    $.post('@Url.Action("Download1",null,null)?fileid=' + FileID);貌似我记得用ajax是无法下载的吧。
    你可以var url = "@Url.Action("Download1",null,null)"+"?fileid=' "+ FileID+"'"
    window.location.href = url;
      

  3.   

    你见过用异步去下载文件的吗? function Download() {
            if (FileID == null || FileID == 0) {
                alert("请选择要下载的文件!");
                return;
            }
           window.open('/BaseFile/Download?fileid=' + FileID);
        }
      

  4.   

    public ActionResult Download1([Bind(Include = "fileid")] int FileID)
            {
                try
                {
                    var fileinfo = this.BaseFileService.getFileInfo(FileID);
                    string filePath = fileinfo.FileUrl;
                    FileStream fs = new FileStream(filePath, FileMode.Open);
                    return File(fs, fileinfo.FileType, fileinfo.FileName);            }
                catch (Exception e)
                {
                    return Content("文件不存在!");
                }
            }其实我写了两个,上面是接收fileid的,还有为什么你说这个action是get是什么意思? 你是说js里 Download()这个函数么?这个函数就是为了给后台一个ID以确定到底下载那个文件,其实我现在在后面都能获取到这个ID,但是下载的时候弹不出来那个保存框