JQuery 在 ASP.NET Core 2.1 中返回“未定义”值

Posted

技术标签:

【中文标题】JQuery 在 ASP.NET Core 2.1 中返回“未定义”值【英文标题】:JQuery return "Undefined" value in ASP.NET Core 2.1 【发布时间】:2019-04-11 20:55:25 【问题描述】:

我正在尝试创建一个动态菜单,当我运行 Web API 时,我可以得到正确的 JSON 字符串,但是当我运行 Razor Pages 时,我只得到 "Undefined"。我的JQuery 有什么问题吗?

提前致谢。

$(document).ready(function () 
    getData();
    getTopMenu();
    SideMenu();
);

function SideMenu() 
    $.ajax(
        type: 'GET',
        url: "https://localhost:44328/api/menus",
        success: function (data) 
            buildMenu($('#menu'), data);
            $('#menu').menu();
        
    );

    function buildMenu(parent, items) 
        $.each(items, function () 
            var li = $("<li>" + this.MenuName + "</li>");
            if (this.ActiveNo == 0) 
                li.addClass('ui-state-disabled');
            

            li.appendTo(parent);

            if (this.MenuList && this.MenuList.length > 0) 
                var ul = $("<ul></ul>");
                ul.appentTo(li);
                buildMenu(ul, this.MenuList);
            
        );
    

【问题讨论】:

你的意思是你的代码在 WebAPI 项目没有运行的时候不起作用?如果是这样,那是预期的行为。 或CORS相关? developer.mozilla.org/en-US/docs/Web/HTTP/CORS 因为我看到你使用 localhost:portnr 而不是相对路径。 我正在使用 CORS 并且我的 WebAPI 正在工作,但是当我运行它时,只会得到未定义的值 【参考方案1】:

this.MenuName this.menuName

【讨论】:

以上是关于JQuery 在 ASP.NET Core 2.1 中返回“未定义”值的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Microsoft.jQuery.Unobtrusive.Ajax 与 libman(库管理器)asp.net Core 2.1 一起使用?

如何在 ASP.NET Core 2.1 中使用自动完成输入引发模式

ASP.net MVC Core Razor 页面和 Ajax JQuery

AJAX post数据到达ASP.NET Core 2.1控制器时为null

ASP.NET Core 托管捆绑包 5 是不是也可以运行 .NET/ASP.NET Core 2.1 应用程序?

如何在 asp.net core 2.1 中使用 net.tcp 服务