【问题标题】:why Ajax code not trigger on click or load为什么 Ajax 代码不会在单击或加载时触发
【发布时间】:2021-05-26 03:05:06
【问题描述】:

谢谢大家。

我是 MVC 编码的新手,我正在尝试编写一个页面来创建和

  • 作为父子循环,使用来自 JSON (MenuHandler.ashx) 的数据,JSON 数据经过测试,没问题,但 Ajax 无法正常工作。

    请注意:Ajax 前后的警报工作

    这是我的 VIEW 页面:

     <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>
     &lt;link href="~/Content/MyCSS/MyCSS.css" rel="stylesheet" /&gt;
    @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>
  • 【问题讨论】:

    • sn-p 的想法是拥有可运行的代码,我们可以使用它来帮助我们回答您的问题。请将 sn-p 更新为能说明问题的内容。
    • 由于警报正在工作,因此点击处理程序也在工作。添加error: 处理程序以查看您的请求是否成功。更好的是,检查浏览器的开发控制台以查看服务器返回的响应。
    • @phuzi 感谢您的重播,我是这个网站的新手,所以我没有很好地使用它。
    • @Jasen 谢谢,你能告诉我我必须在哪里添加它
    • @Jasen 我添加了错误处理程序,并返回 404 消息!

    标签: javascript jquery ajax model-view-controller


    【解决方案1】:

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

    【讨论】:

    • 感谢您的帮助,实际上没有控制器,我使用 MenuHandler.ashx 处理 Josn 数据,当我检查结果时发现:错误:加载资源失败:服务器响应为状态为 404 () MenuHandler.ashx,此文件位于我项目的主根目录中,即使我将其移动到视图页面的同一文件夹,它也无法正常工作
    • 很高兴看到您的项目现在运行正常 :)
    【解决方案2】:

    感谢大家,正如 Alejandro Coronado 所说,问题出在 handler.ashx 文件中,我现在不知道为什么没有工作,但是当我使用 json 结果操作时 Ajax 奏效了,结果符合我的预期

    谢谢大家

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-13
      • 1970-01-01
      • 1970-01-01
      • 2011-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多