ASP.NET MVC {j}中每个jquery.unobtrusive-ajax.js实例都会出现确认对话框

时间:2016-02-24 15:33:32

标签: jquery ajax asp.net-mvc

我有一个带有Ajax.ActionLink删除图标的项目列表,要求确认删除操作。问题是在Web应用程序的浏览器中为“jquery.unobtrusive-ajax.js”的每个实例显示确认对话框。例如,如果计数文件实例为5,那么确认对话框将出现5次,这将使用户烦恼,这将迫使用户检查选项“防止此页面出现其他对话框”,从而防止出现确认对话框,除非该页面是刷新。我还尝试使用捆绑选项加载文件一次(在登录页面中),该选项按预期工作但如果用户在没有注销的情况下关闭浏览器,则不会加载'jquery.unobtrusive-ajax.js'重新访问网络应用程序。这会导致HTTP 404错误,HTTP GET请求被发送到控制器而不是HTTP POST,因为单击删除图标时未加载文件。 Screen shot for the JavaScript confirm dialog box

以下是部分视图的代码段:

@model IEnumerable<MyNameSpace.Models.FileDownloadModel>
@foreach (var item in Model)
{
    <tr>
        <td>@item.BlobFileName</td>
        <td>@(String.Format(System.Globalization.CultureInfo.InvariantCulture, "{0:0.00}", item.BlobLength / 1024))</td>
        <td>@item.BlobContentType</td>
        <td>
        @Ajax.ActionLink("Delete", "DeleteFile", new { blobFileName = item.BlobFileName, contName = item.ContainerName }, new AjaxOptions { Confirm = "Are you sure, you would like to delete the file?", HttpMethod = "POST", OnSuccess = "OnSuccess" }, new { @class = "ui-btn ui-shadow ui-corner-all ui-icon-delete ui-btn-icon-notext ui-btn-inline", @title = "Delete" })
        </td>
    </tr>
}

问题是: 1.如果JavaScript文件不存在,是否有办法加载?

  1. 有没有办法阻止文件被多次加载?
  2. 我很感激向导的任何建议。 谢谢,R。

    更新: 对不起,我应该发布父视图的代码和部分视图。

    父视图的代码段:

     @{
         ViewBag.Title = "Title_of_Page";
         Layout = "~/Views/Shared/_LayoutSignedIn.cshtml";
     } 
     <div id="secFiles">
        @{Html.RenderPartial("~/Views/path/partialView.cshtml", Model);}
    </div>
     @section Scripts {
     <script src="~/Scripts/jquery.unobtrusive-ajax.js" type="text/javascript"></script>
     <script type="text/javascript">
          function OnSuccess(data) { 
               //code to refresh the list after delete action 
               if (data) {
                 $('#secFiles').html(data).enhanceWithin();
               }
          }
     </script>
     }
    

0 个答案:

没有答案