如何使用内联Javascript设置RequireJS的多页面应用程序

时间:2013-04-06 02:51:57

标签: javascript asp.net-mvc asp.net-mvc-4 requirejs

我正在尝试将项目转换为使用requirejs而不是我下面的解决方案。目前我有一个布局页面,其中包含页面底部的所有脚本(modernizr除外),如下所示:

<head>
    <script src="@Links.Assets.Scripts.Libraries.modernizr_2_6_2_js"></script>
</head>

<body>
    <!-- Page content goes here -->

    @RenderSection("PreScripts", false)
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <script>window.jQuery || document.write('<script src="@Links.Assets.Scripts.Libraries.jquery_1_9_1_min_js"><\/script>')</script>
    <script src="@Links.Assets.Scripts.Libraries.jquery_namespace_js"></script>
    <script src="@Links.Assets.Scripts.Libraries.jquery_unobtrusive_ajax_js"></script>
    <script src="@Links.Assets.Scripts.Libraries.jquery_validate_js"></script>
    <script src="@Links.Assets.Scripts.Libraries.jquery_validate_unobtrusive_js"></script>
    <script src="@Links.Assets.Scripts.Libraries.jquery_timeago_js"></script>
    <script src="@Links.Assets.Scripts.Libraries.toastr_js"></script>
    <script src="@Links.Assets.Scripts.Views.Shared._master_js"></script>
    @RenderSection("PostScripts", false)

    @{
        var errorMessage = TempData[TempDataConstants.ErrorMessage] as string;
        var infoMessage = TempData[TempDataConstants.InfoMessage] as string;
        var successMessage = TempData[TempDataConstants.SuccessMessage] as string;
        if (!string.IsNullOrEmpty(errorMessage)) {
            <script>
                var origTimeOut = toastr.options.timeOut;
                toastr.options.timeOut = 0;
                toastr.error(@Html.Raw(Json.Encode(errorMessage)));
                toastr.options.timeOut = origTimeOut;
            </script>
        }
        if (!string.IsNullOrEmpty(successMessage)) {
            <script>
                var origTimeOut = toastr.options.timeOut;
                toastr.options.timeOut = 0;
                toastr.success(@Html.Raw(Json.Encode(successMessage)));
                toastr.options.timeOut = origTimeOut;
            </script>
        }
        if (!string.IsNullOrEmpty(infoMessage)) {
            <script>
                var origTimeOut = toastr.options.timeOut;
                toastr.options.timeOut = 0;
                toastr.info(@Html.Raw(Json.Encode(infoMessage)));
                toastr.options.timeOut = origTimeOut;
            </script>
        }
    }
</body>

在使用此布局页面的各个页面中,我然后填充PostScripts部分:

@section PostScripts {
    // Javascript that belongs to a single page goes here.
}

问题

我已经关注了this example,但是您可以看到我在服务器上检查TempData的位置,看它是否为null,以便在客户端上弹出一个toastr消息。我不太确定这样做的最好方法,并尝试了很多东西。有什么想法吗?

0 个答案:

没有答案