0

我想要做的是在我阅读一个之后更新“新文件”的数量。首先,我有一个包含新文件数量的文本(新文件是指我尚未下载或单击下载的文件)。

<a id="Plans">Plans (@Model.NewPlansQuantity)</a> 

每当我点击“下载链接”时,我必须下载文件并更新我认为是新文件的数量。这是下载链接:

foreach (var item in @Model.MediaItems)
        {
        <tr>
            <td> 
                @Html.ActionLink(@item.Name, "DownloadFile", "Controller",
                                 new
                                    {
                                        FileName = item.FileName,
                                        Type = item.Type,
                                        FileID = item.MediaItemID
                                    }, new { @class = "DownloadLink" })
            </td>

此链接调用以下操作:

public FilePathResult DownloadFile(string FileName, int Type, int FileID)
    {
        var file= FileRepository.GetFiles(FileID);
        var fileroute = FilesRepository.FileRoute.FirstOrDefault(x => x.Type == Type);

        if (file != null)
        { 
            file.Read = true;
            FileRepository.SaveFile(file );
        }

        var route = Server.MapPath(Url.Content(fileroute.Route));

        var path = Path.Combine(route, FileName);

        FileInfo info = new FileInfo(path);

        if (info.Exists)
        {
            return File(path, "application/octet-stream", FileName);
        }
        else
        {
            throw new HttpException(404, "Not found");
        } 
    } 

我在操作方法中所做的是将文件实体更新为读取并下载它。之后,我必须更新新文件数量的文本,这是上面的第一行代码(我认为是通过 ajax 调用)。我尝试在以下事件中进行 ajax 调用:

    $('.DownloadLink').live("click", function () {

       //Tried to do the ajax call here
    });

我尝试在下载链接事件单击中进行 ajax 调用,但没有奏效。似乎 ajax 调用正在停止,可能是因为我正在同时请求下载文件。有谁知道有什么方法可以做到这一点?

4

1 回答 1

0

我想我没有清楚地解释我的问题,无论如何我在这篇文章中找到了我正在寻找的答案。

使用 ASP.NET MVC,我可以使用 jQuery GET 和 FilePathResult 下载文件吗?

于 2012-09-10T15:40:22.710 回答