0

ASP.NET サイトで require.js を使用していましたが、すべて正常に動作していました。今、私は MVC サイトでそれをやろうとしていますが、うまくいかないようです。私の _layout.cshtml ファイルは次のとおりです。

<!DOCTYPE html>

    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width" />
    <title>@ViewBag.Title</title>

    @Styles.Render("~/Content/css")
    @Styles.Render("~/Content/themes/base/css")
    @Styles.Render("~/Content/bootstrap")
    @Styles.Render("~/Content/toastr")
    @Styles.Render("~/Content/fontawesome")
    @Styles.Render("~/Content/percentage")
    @Scripts.Render("~/bundles/modernizr")

</head>

<body style="background-image: url('/Content/images/background.png')">

...abbreviated...

    @Scripts.Render("~/bundles/jquery")
    @Scripts.Render("~/bundles/bootstrap")
    @Scripts.Render("~/bundles/jqueryui")
    @Scripts.Render("~/bundles/jqueryval")
    @Scripts.Render("~/bundles/toastr")
    @Scripts.Render("~/bundles/knockout")
    @Scripts.Render("~/bundles/require")
    @Scripts.Render("~/bundles/percentage")
    @Scripts.Render("~/bundles/placeholder")

    @RenderBody()

    @RenderSection("scripts", required: false)

</body>

そして、次のような index.cshtml ファイルがあります。

    @{
    ViewBag.Title = "Hobby Matrix -- Home";
}

@section scripts{
    <script src="/Scripts/require.js" data-main="/Scripts/helpers/home"></script>
}

私のhome.jsファイルは次のようなものです:

    define([], function () {

    $(document).ready(function () {
        alert('here');
    });

})

しかし、何らかの理由で、そのビュー (index.cshtml) に移動してもアラートが呼び出されません。明らかに、MVC がこれらのファイルを処理する方法に関連して何か間違ったことをしていると思いますが、何が原因かわかりません。ソースを表示すると、期待するすべてのコード行がレンダリングされており、エラーは発生しません。ご意見やご提案をいただければ幸いです。

ありがとう、

アンドリュー

4

2 に答える 2

0

実際、この問題は require.js とは何の関係もありませんでした。これは問題なく機能していました。問題は、ajax 呼び出しで「/」が欠落していたため、ajax 呼び出しが到達しようとしていた「コントローラー/アクション」が見つからなかったことです。同じパスにある 1 つのページで動作していましたが、そうでない 2 番目のページでは、私が指している場所を解決できませんでした。誰かの時間を無駄にしたらごめんなさい。

アンドリュー

于 2013-07-07T00:46:29.800 に答える