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 调用试图到达的“控制器/动作”。它在同一路径中的一页上工作,但在不在的第二页上,它无法解析我指向的位置。对不起,如果我浪费了任何人的时间。

安德鲁

于 2013-07-07T00:46:29.800 回答
0

看看 RequireJS for ASP.NET MVC 模板项目,这里解释了集成,你可以在GitHub 上fork 项目。

于 2013-07-06T09:27:44.663 回答