我想要做的是在我阅读一个之后更新“新文件”的数量。首先,我有一个包含新文件数量的文本(新文件是指我尚未下载或单击下载的文件)。
<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 调用正在停止,可能是因为我正在同时请求下载文件。有谁知道有什么方法可以做到这一点?