为什么ajax下的javascript actionlink函数在mvc中不起作用

为什么ajax下的javascript actionlink函数在mvc中不起作用,javascript,ajax,asp.net-mvc,Javascript,Ajax,Asp.net Mvc,在AJAXGET方法下,我需要以编程方式生成表。为什么actionlink不能与我的表一起工作 ajax方法 $(document).ready(function () { //click event $('.delete-logo').on('click', function () { var id = $(this).data('key'); alert(id);

在AJAXGET方法下,我需要以编程方式生成表。为什么actionlink不能与我的表一起工作

ajax方法

       $(document).ready(function () {
//click event
            $('.delete-logo').on('click', function () {

                var id = $(this).data('key');
                alert(id);
            });
//click event               
            $('.edit-logo').on('click', function () {

                var id = $(this).data('key');
                alert(id);
            });

            $('.submitDetailForm').on('click', function () {                

            //get value from control
                var ProductID = $('#ProductID').val();
                var Qty = $('#Qty').val();
                var Unit = $('#Unit').val();
                var Amount = $('#Amount').val();
                var ICMS = $('#ICMS').val();
                var IPI = $('#IPI').val();
                var ProductName = $('#ProductID option:selected').text();


                var booksDiv = $("#booksDiv");
                $.ajax({
                    cache: false,
                    type: "GET",
                    url: '@Url.Action("AddToCard", "Sales")',
                    data: { ProductID: ProductID, ProductName: ProductName, Qty: Qty, Unit: Unit, Amount: Amount, ICMS: ICMS, IPI: IPI },
                    success: function (data) {
                        console.log(data);
                        var result = "";
                        booksDiv.html('');
                        $.each(data, function (SalesOrderID, OrderDetails) {

                            result += '<tr> <td>' + OrderDetails.Name + '</td>' +
                                '<td>' + OrderDetails.Qty + '</td>' +
                                '<td>' + OrderDetails.Unit + '</td>' +
                                '<td>' + OrderDetails.Amount + '</td>' +
                                '<td>' + OrderDetails.ICMS + '</td>' +
                                '<td>' + OrderDetails.IPI + '</td>' +
                                '<td><a class="edit-logo" data-key=' + OrderDetails.SalesOrderDetailID + ' href="javascript:void(0);">' + 'Edit' + '</a></td>' +
                                '<td><a class="delete-logo" data-key=' + OrderDetails.SalesOrderDetailID + ' href="javascript:void(0);">' + 'Delete' + '</a></td>' +
                                ' </tr>';
                        });
booksDiv.html(result);

                    },
                    error: function (xhr, AJAXOptions, thrownError) {
                        alert('Failed to retrieve books.');
                    }
                });
            });
        });
$(文档).ready(函数(){
//点击事件
$('.delete logo')。在('click',函数(){
var id=$(this.data('key');
警报(id);
});
//点击事件
$('.edit logo')。在('click',函数(){
var id=$(this.data('key');
警报(id);
});
$('.submitDetailForm')。在('click',函数(){
//从控件中获取值
var ProductID=$('#ProductID').val();
变量数量=$('#数量').val();
var Unit=$('#Unit').val();
变量金额=$(“#金额”).val();
var ICMS=$('#ICMS').val();
var IPI=$('#IPI').val();
var ProductName=$(“#ProductID选项:选定”).text();
var booksDiv=$(“#booksDiv”);
$.ajax({
cache:false,
键入:“获取”,
url:'@url.Action(“AddToCard”、“Sales”),
数据:{ProductID:ProductID,ProductName:ProductName,数量:数量,单位:单位,金额:金额,ICMS:ICMS,IPI:IPI},
成功:功能(数据){
控制台日志(数据);
var结果=”;
booksDiv.html(“”);
$.each(数据、函数(SalesOrderID、OrderDetails){
结果+=''+订单详细信息。名称+''+
''+订单详细信息.数量+''+
''+订单详细信息。单位+''+
''+订单详细信息.金额+''+
''+OrderDetails.ICMS+''+
''+OrderDetails.IPI+''+
'' +
'' +
' ';
});
booksDiv.html(结果);
},
错误:函数(xhr、AJAXOptions、thrownError){
警报('检索书籍失败');
}
});
});
});
超链接内容

    '<td><a class="edit-logo" data-key=' + OrderDetails.SalesOrderDetailID + ' href="javascript:void(0);">' + 'Edit' + '</a></td>' 

'<td><a class="delete-logo" data-key=' + OrderDetails.SalesOrderDetailID + ' href="javascript:void(0);">' + 'Delete' + '</a></td>' 
“”
'' 
超链接在浏览器中完美显示,但无法调用单击事件


为什么未触发my actionlink click事件?

添加动态内容时,需要使用事件委派(使用函数)

$('#booksDiv').on('click', '.delete-logo', function() {
  ....
});
$('#booksDiv').on('click', '.edit-logo', function() {
  ....
});
其中带有
id=“booksDiv”
的元素是第一次生成页面时存在的最接近的祖先


旁注:不用手动生成javascript对象,只需使用
数据:$('form').serialize(),

Stephen muecke感谢您提供的宝贵信息。