asp.net-mvc - 稍后加载jquery时如何在MVC视图中添加Javascript方法
问题描述
我的项目中有很多 MVC 视图,它们都有自己特定的 JS 功能。我想在视图本身中添加这些功能。
@{
}
<div>
....
</div>
<script>
$(document).ready(function(){
$("#btn").click(function(){
doSomething();
});
});
function doSomething(){
}
</script>
但问题是,jQuery 引用位于body
标签的末尾,并且无法更改。当视图加载较早时,会出现 $ 未定义的错误。
有什么方法可以让 JS 仍然在视图中。
解决方案
RenderSection
就像 HTML 的占位符。它保证您编写的任何 HTML 将始终呈现在布局中定义的特定位置。
您可以RenderSection
在布局中使用,如下所示:
<body>
...
...
<script src="jquery.min.js"></script>
@RenderSection("Scripts", required: false)
</body>
然后在您使用此布局的视图中,您可以添加@section
如下:
@{
Layout="_layout.cshtml"
}
<div>
...
...
</div>
@section Scripts {
<script type="text/javascript">
$(document).ready(function(){
$("#btn").click(function(){
doSomething();
});
});
function doSomething(){
}
</script>
}
欲了解更多信息,请查看章节
推荐阅读
- python - 在 macOS 上通过 Python 打开 Excel
- msbuild - 框架与 Visual Studio 中的 Msbuild 版本
- python - 如何将字符串数组分成 2 个单独的部分
- java - Java SWT 浏览器。具有超高清 (4K) 或更高分辨率的屏幕上的不同输出
- python - flask + restful web service 无法运行文本分类模型 + python
- gem5 - 如何在完整的系统 gem5 模拟中获得图形 GUI 输出和用户触摸/键盘/鼠标输入?
- git - 如何在 VSTS 中使用外部 powershell 模块
- database - 在 Laravel Voyager 中创建表时创建迁移文件
- java - 带有 maven intel IDEA 的包不存在 javaFX
- powershell - 如何使用 Get-AnsibleParam,Ansible 中的内置函数