MVC:延迟jquery脚本执行,直到布局脚本完成

时间:2016-01-28 09:41:46

标签: c# jquery ajax asp.net-mvc model-view-controller

我正在开发一个ASP.net项目,该项目使用了相当多的客户端Jquery脚本。在layout.cshtml页面中,我有一个Ajax调用,它返回有关登录用户的信息。我的应用程序中的所有页面都依赖于此信息。因此,我需要一种机制,以便在布局页面上的调用完成之前,我不会在各个视图中执行任何脚本。

通常我会使用jquery延迟,但这很困难,因为调用是在2个未连接的文件中(例如layout.cshtml和个人视图cshtml)。我能想到的其他选项是使初始调用同步,我不想做或有某种等待循环(例如setTimeout(checkVal,200),这两种解决方案都没有吸引我。

以下是我想要做的非常简单的样本。

Layout.cshtml

$(document).ready()
{
    function LoadUserData()
    {
        return $.ajax({
                type: "GET",
                contentType: "application/json",
                dataType: "json",
                url: baseUrl + "/Account/GetUserMeta",
                success: function (res) {
                    $("#userMetaData").data('meta', res);
                }
            });
    }
}

示例视图(Index.cshtml)

$(document).ready()
{
    function DoStuff()
    {
        //This may not be available yet
        var meta = $("#userMetaData").data('meta');
    }
}

0 个答案:

没有答案