MVC控制器完成时触发的Jquery事件

时间:2013-06-04 13:33:49

标签: jquery asp.net-mvc-3

当ASP.NET MVC 3控制器完成它的工作时是否会触发一个jquery事件?

我在MVC页面上有一个链接,允许用户下载文件。 MVC控制器返回一个文件。单击链接时,我有一个jquery函数,可以在创建文件时锁定屏幕。然后,用户获得保存文件的对话框。但是当文件实际返回给用户时,我还有另外一个我要运行的jquery函数来解锁屏幕。

这是我的代码:

在MVC视图中:

@Html.ImageLink("Download as CSV", "Report", "GetCSVFile", "", Url.Content("~/Content/images/csv.png"), "Generate Report", null, null, null, true, "blockscreenfunction") 

在控制器中:

public ActionResult GetCSVFile ()
{
    string fullName = service.initiateCsvGeneration(1);
    string fileName = Path.GetFileName(fullName);
    return File(fullName, "text/csv", fileName);
}

总而言之,当用户开始下载时,我使用jquery blockscreenfunction函数锁定屏幕。然后控制器创建文件,用户获得文件下载对话框。我有另一个用于解锁屏幕的jquery函数。控制器返回文件后如何执行此功能?

1 个答案:

答案 0 :(得分:1)

您可能想尝试@Ajax.ActionLink。它具有 OnComplete 属性,您可以在其中设置解锁屏幕的jQuery函数。

@Ajax.ActionLink("Download FIle", "ActionName", "ControllerName", ... ,  new AjaxOptions { HttpMethod = "POST", InsertionMode = InsertionMode.Replace, OnBegin = "LockScreenFunction", OnComplete = "UnlockScreenFunction", UpdateTargetId = "TargetElement" })