【问题标题】:load menu and submenus ,partialview jquery ajax加载菜单和子菜单,部分视图 jquery ajax
【发布时间】:2020-12-03 00:12:11
【问题描述】:

我有一个返回部分视图和数据的控制器。

return PartialView(@"~/Views/Shared/Menu/Menu.cshtml", result.Result);

然后我在 javascript 中调用这个控制器来像这样在我的剃须刀页面上加载菜单

$('#primary-menu').load(url);

问题是当页面加载时我可以在我的页面上显示菜单,但所有父菜单在页面加载时扩展。我需要动态加载菜单,但是当我尝试将数据加载为部分视图时,父菜单会在加载时展开,我无法阻止这种情况。但是,如果我静态添加 html,它可以正常工作,菜单不会在加载时扩展。我怎样才能做到这一点?

【问题讨论】:

    标签: jquery .net ajax razor partial-views


    【解决方案1】:

    我不确定局部视图中的内容。但我假设有一些初始化脚本在 $.load 调用期间没有被调用。如果是这种情况,您可以通过添加简单的 console.log 语句来检查。 否则你可以尝试在成功时执行脚本。

    $.('#primary-menu').load(url, function() {
       // initialise your menu here (assuming its some kind of component)
    });
    

    【讨论】:

    • 感谢您的回答,控制器返回部分视图和模型,我用此模型递归填充 html(父子关系),我可以在加载回调中加载菜单,但我需要使用partialview 所以我不知道如何在 jquery 中填充 partialview
    • 所以没有脚本。您是否使用任何 css 来展开和折叠菜单。是否有可能在同一个局部视图中引用了样式表文件,并且在您使用 $.load 时它没有被下载。但是当您粘贴 html 浏览器时会下载它。在这种情况下,您可以将样式表移动到头部或预先捆绑它。
    • 不可能,我没有使用css进行扩展或折叠,只是模板css。我在另一个项目中用另一个模板做了同样的事情,它工作正常,但这次我什至无法关闭展开的菜单,因为没有折叠图标,它只适用于有趣的静态 html。
    • 那么视图的实现方式可能有问题/错误。您可以简单地从部分视图返回正在工作的 html,并确认没有脚本和 css 问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-02
    • 2015-04-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多