确认删除模式/对话框在部分视图中使用时不起作用
案例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 :以下工作。
查看 (所有本身没有局部视图)
@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); }) }); }
- 情况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