我尝试这样做的主要动机是获得只需要在页面底部的部分和其余的 Javascript 一起使用的 Javascript,而不是在呈现部分的页面中间。
这里有一个简单的例子来说明我正在尝试做的事情:
下面是正文前面的 Scripts 部分的布局。
<!DOCTYPE html>
<html>
<head>
<title>@ViewBag.Title</title>
<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
</head>
<body>
@RenderBody()
<script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript"></script>
@RenderSection("Scripts", false)
</body>
</html>
下面是使用此布局的示例视图。
<h2>This is the view</h2>
@{Html.RenderPartial("_Partial");}
@section Scripts {
<script type="text/javascript">
alert("I'm a view.");
</script>
}
这是从视图中渲染出来的部分。
<p>This is the partial.</p>
@* this never makes it into the rendered page *@
@section Scripts {
<script type="text/javascript">
alert("I'm a partial.");
</script>
}
在此示例中,视图中指定的标记放在节中,但部分的标记不放在节中。是否可以使用 Razor 从部分视图填充部分?如果没有,那么还有什么其他方法可以获得只需要页面底部的部分内容而不需要全局包含的 Javascript 呢?