确认删除模式/对话框在部分视图中使用时不起作用

案例1 :当点击Delete 1按钮时,会弹出Bootstrap的modal dialog,当您单击该弹出窗口的Delete按钮时,如下所示, jquery代码正确地在Chrome浏览器的控制台窗口中写入Test: id1

情况2 :但是当您使用局部视图渲染相同的html时, jquery代码(如下面的case 2所示)不会向Chrome浏览器的控制台窗口写入任何内容。 我认为它可能与Case 2的主视图中的id = DeleteBtnParentID有关。

注意 :两种情况下jqueries之间的jqueries在于,在Case 2我使用事件委派,而在Case 1我没有必要。

  1. 案例1 :以下工作。

查看 (所有本身没有局部视图)

      @section Scripts{  $(document).ready(function () { $('#DeleteBtnID').on('click', function (event) { console.log('Test: ' + $(this).attr('value')); }); $('#myModal').on('show.bs.modal', function (e) { var btnValue = $(e.relatedTarget).attr('value'); $('#DeleteBtnID').attr('value', btnValue); }) });  } 
  1. 情况2 :当通过部分视图呈现上述html时,以下dos不起作用:

主要观点

 
@Html.Partial("TestPartial")

部分视图 [TestPartial.cshtml]:

      @section Scripts{  $(document).ready(function () { $('#DeleteBtnParentID').on('click', '#DeleteBtnID', function (event) { console.log('Test: ' + $(this).attr('value')); }); $('#myModal').on('show.bs.modal', function (e) { var btnValue = $(e.relatedTarget).attr('value'); $('#DeleteBtnID').attr('value', btnValue); }) });  } 

问题是你在PartialView中使用@section,它永远不会按设计工作。

解决方法:改变

 @section Scripts{  } 

  

有关更多信息,您可以检查以下问题: 从部分视图将内容注入特定部分使用Razor View Engine的ASP.NET MVC 3