为什么 Ajax 代码不会在点击或加载时触发

why Ajax code not trigger on click or load

谢谢大家。

我是编码 MVC 的新手,我正在尝试编写一个页面,该页面将使用 JSON (MenuHandler.ashx) 中的数据创建并

  • 作为父子循环, JSON 数据已经过测试,没问题,但是 Ajax 不工作。

    谨记:警报在 Ajax

    之前和之后工作

    这是我的浏览页面:

     <script type="text/javascript">
    
            $(document).ready(function () {
    
                $("#testaj1").click(function () {
    
                    alert ("test22")
                    
                    $.ajax({
                        url: 'MenuHandler.ashx',
                        method: 'get',
                        dataType: 'json',
                        success: function (data) {
    
                            buildMenu($('#menu'), data)
                            $('#menu').menu();
                            
                           
                        }
    
    
                    });
                    alert("test33")
                });
    
                function buildMenu(parent, items) {
                    $.each(items, function () {
                        var li = $('<li>' + this.Name + '</li>');
    
    
                        li.appendTo(parent);
    
                        if (this.List && this.List.length > 0) {
    
    
                            var ul = $('<ul></ul>');
                            ul.appendTo(li);
                            buildMenu(ul, this.List);
    
    
                        }
    
                    })
    
                }
    
            })
           
            
    
        </script>
    
     <link href="~/Content/MyCSS/MyCSS.css" rel="stylesheet" />
    
    @model IEnumerable<pedigree.Models.pedigree1>
    
    @{
        Layout = null;
    }
    
    <!DOCTYPE html>
    
    <html>
    <head>
        <meta name="viewport" content="width=device-width" />
       
     
        <script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
    
        <script src="~/Scripts/jquery-3.5.1.js"></script>
    
        <script src="~/Scripts/jquery.unobtrusive-ajax.js"></script>
    
    
    
    
        <title>Index</title>
    </head>
    <body>
        <p>
            @Html.ActionLink("Create New", "Create")
        </p>
    
        <form>
            <button id="testaj1" type="button" >test</button>
    
            <div class="tree">
    
                <ul id="menu">
                </ul>
    
    
            </div>
        </form>
    

  • 最常见的原因是您指向的控制器,也许控制器 uri 不正确,还要确保您的控制器返回 JSON。

    感谢大家,正如亚历杭德罗·科罗纳多所说,问题出在 handler.ashx 文件中,我现在不知道为什么不起作用,但是当我改用 json 结果操作时 Ajax 成功了,结果符合我的预期

    谢谢大家