当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函数。控制器返回文件后如何执行此功能?
答案 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" })