Roo*_*aur 2 .net asp.net-mvc jquery razor asp.net-mvc-4
这可能是我记错的情况,但是......
我正在创建一个 MVC4 应用程序,并且在索引页面中我希望添加两个 .js 文件:
<script type="text/javascript" src="~/Scripts/fullcalendar.js"></script>
<script type="text/javascript" src="~/Scripts/moment.js"></script>
Run Code Online (Sandbox Code Playgroud)
这会添加文件,但对它们没有任何作用。我唯一获得所需结果的时间是我还将文件添加到_Layout.cshtml.
我确定在过去的项目中,我可以将 .js 文件添加到页面中,并且效果很好,为什么从头开始项目时我需要将所有内容都放在_Layout.cshtml文件中?难道我做错了什么?
编辑: index.cshtml 文件中的唯一代码是:
<link rel='stylesheet' href='~/Content/fullcalendar.css'>
<script type="text/javascript" src="/Scripts/fullcalendar.js"></script>
<script type="text/javascript" src="/Scripts/moment.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$('#calendar').fullCalendar({
header: {
left: 'prev, next today',
center: 'title',
right: 'month, agendaWeek, agendaDay'
},
defaultView: 'month',
firstDay: 1,
editable: true,
selectable: true,
slotMinutes: 60
});
});
</script>
<body>
<div id='calendar'></div>
</body>
Run Code Online (Sandbox Code Playgroud)
当脚本也在`_Layout.cshtml'中时呈现良好,但当它们不在时则不呈现。
小智 7
只是想在上面的答案中添加一些内容。如果希望将自定义 JavaScript 添加到特定视图,并且您使用的是来自 Microsoft 的标准 MVC4 模板,则所有捆绑的 jQuery 和 BootStrap JavaScript 都位于页面底部。这样做的原因是,这些将在 DOM(文档对象模型,基本上是包含所有 html 内容的页面)在浏览器中渲染后加载。
查看_Layout.cshtml。请注意,页面底部有一行专门用于呈现名为“脚本”的部分
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/bootstrap")
@RenderSection("scripts", required: false)
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
因此,您需要做的是在视图 .cshtml 页面中添加新部分。将其命名为“脚本”。您应该将其添加到初始 ViewBag 部分之后。
示例视图.cshtml:
@{
ViewBag.Title = "Example View";
}
@section scripts{
<script type="text/javascript">
//Here is the custom javascript just for this view.
alert("I will only say hello on view.");
</script>
}
Run Code Online (Sandbox Code Playgroud)
当您启动视图时,此自定义 JavaScript 将仅在此视图上运行。
希望这可以帮助。
好的。这是我的第一个答案,我对此非常满意,但我花了很长时间才弄明白。我希望这对大家有帮助。
解决此问题的最佳方法是首先将所有 js 文件放在解决方案资源管理器中 MVC 应用程序的 Script 文件夹中。确保它们以 .js 结尾,并且不在 Scripts 文件夹的其他子文件夹中。
将该文件添加到 Scripts 文件夹后,转到 App_Start 文件夹。您将看到类文件 BundleConfig.cs 打开该文件。这是你将你的 js 文件添加到你的包的地方
代码应该是这样的:
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js",
"~/Scripts/Your.JavaScript.File.js"));
Run Code Online (Sandbox Code Playgroud)
现在进入views文件夹中的_Layout.cshtml页面。请注意,您也可以在此处添加脚本标签,但我所展示的是您是否希望链接 js 文件。
在结束正文标记上方添加此代码。
@Scripts.Render("~/bundles/jquery")
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
您可以将多个 js 文件添加到包中,并使用这行代码调用它们。继续运行程序,你应该很稳定。谢谢大家请让我知道这是否适合您。
| 归档时间: |
|
| 查看次数: |
24835 次 |
| 最近记录: |