【发布时间】:2014-07-25 21:55:12
【问题描述】:
在 ASP.NET MVC 中,@RenderBody() 之后包含的 JavaScript 似乎不会影响 @RenderBody() 内容。必须放在前面。即
母版页:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<title>@ViewBag.Title</title>
</head>
<body>
@RenderBody()
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
</body>
</html>
派生页面:
@{
ViewBag.Title = "Settings";
Layout = "~/Views/Shared/Master.cshtml";
}
<div id="status">Status</div>
<script>
$("#status").hide().fadeIn();
</script>
对于派生页面,在调用 hide().fadeIn() 时,它还没有加载 jQuery,因此浏览器日志显示 JavaScript 错误。
但是,如果我将 jQuery 包含 <script> 标记放在 @RenderBody() 之前,则 jQuery 会正常加载。
我想知道为什么它必须在之前才能工作?我想把它放在后面,因为最好将脚本标签放在 HTML 文件的底部以获得更好的性能。
【问题讨论】:
-
在您尝试使用它之后,您将包含 jquery。完全有道理,您的视图中的脚本将不起作用。
标签: jquery asp.net-mvc master-pages