【发布时间】:2013-03-20 20:08:27
【问题描述】:
出了点问题,我想不通。
_Layout.cshtml 有:
<body>
<script data-main="Scripts/main"
src="@Url.Content("~/Scripts/require.js")"
type="text/javascript">
</script>
@RenderSection("scripts", required: false)
</body>
/Scripts/main.js:
require.config({
paths: {
"jquery": "jquery-1.9.1"
}
});
一直到 index.cshtml:
@section scripts
{
<script type="text/javascript">
require(['jquery'], function ($) {
});
</script>
}
它会抛出 404 试图查找 jquery.js。我做错了什么?
upd: 是的 main.js 被调用,如果注释 index.cshtml 中的所有内容并将其放在 main.js 的末尾,则类似于
require([
'jquery'
], function ($) {
$(function(){
alert('jquery loaded');
})
});
它显示消息
【问题讨论】:
-
首先,你为什么要渲染脚本?让 requireJs 来解决这个问题。其次,你有没有调试到 main.js 看是否被调用?
-
愚蠢的问题:jquery.js 是在正确的地方,是吗?
-
是的,@DavidL main 已被调用。我希望每个视图都有
code-behind.js。所以每个视图脚本部分都应该需要一个模块 -
@Agzam 这是一种方法。但是,这是传统的全视图应用程序还是部分/SPA 应用程序?如果每个控制器都返回一个全新的视图,我可以理解您的设计决定。如果没有,我建议使用 RequireJS 来处理加载什么模块以及何时加载
标签: c# javascript asp.net-mvc-4 requirejs