FileDownload不工作ASP MVC

时间:2018-03-05 05:53:27

标签: c# ajax asp.net-mvc

我正在尝试从服务器下载文件,但这件事无效。已经做了两个多星期了。这是代码:

IN CSHTML PAGE:

<script type="text/x-jsrender" id="docView">
  <a href="#" onclick="docView('{{:id}}')">View</a>
</script>
<script>
function docView(id) {
        docId = id;
        $.ajax({
            type: "GET",
            url: '@Url.Action("DownloadFile", "Profile")' + "?docid=" + docId,
            dataType: "json",
            success: function (result) {

            },            
    });
</script>

IN MVC Controller:

[HttpGet]
public ActionResult DownloadFile(Guid? docid)
    {
        int i = 1;
        string key = ConfigurationManager.AppSettings["PhysicalDocumentPath"];
        JApplicantDocument value = new JApplicantDocument();
        var response = new Response();
        var fName = "";
        var savefileName = "";
        var fileSavePath = "";
        var prevPath = "";
        var nextPath = "";           

        try
        {
            IApplicantDataService applicantDataService = new ApplicantDataService();
            response = applicantDataService.GetDocument(docid, value);
            var fileName = value.ApplicantId + "_" + value.DocumentName;
            fName = fileName;
            savefileName = fileName;
            fileSavePath = Path.Combine(key, fileName);
            prevPath = fileSavePath;
            nextPath = fileSavePath;
            var tmp = fileName.Split('.');
            var tmp1 = tmp[0];
            while (System.IO.File.Exists(nextPath)) //to get the latest file
            {
                tmp = fileName.Split('.');
                fileName = tmp1 + i.ToString();
                fileName = fileName + "." + tmp[1];
                savefileName = fileName;
                nextPath = Path.Combine(key, savefileName);
                if (System.IO.File.Exists(nextPath))
                {
                    prevPath = nextPath;

                }
                i++;
                tmp = prevPath.Split(new string[] { "Docs\\" }, StringSplitOptions.None);
                fName = tmp[1];
                response.Message = prevPath;
            }


        }
        catch (Exception e)
        {
            Utils.Write(e);
        }

        return File(prevPath, value.Format);                       

    }

我只想点击“查看”按钮按此(http://www.c-sharpcorner.com/UploadFile/db2972/file-download-sample-in-mvc-day-40/)下载文件。我不能直接在tag中使用location.href(...),因为我在脚本jsrender中使用它,这是在syncfusion网格控件中使用的。因此,我根本无法获得docid。

0 个答案:

没有答案