我在本节中定义了此部分 _Layout.cshtml
@RenderSection("Scripts", false)
Run Code Online (Sandbox Code Playgroud)
我可以从视图中轻松使用它:
@section Scripts {
@*Stuff comes here*@
}
Run Code Online (Sandbox Code Playgroud)
我正在努力的是如何从局部视图中获取本节内注入的一些内容.
我们假设这是我的视图页面:
@section Scripts {
<script>
//code comes here
</script>
}
<div>
poo bar poo
</div>
<div>
@Html.Partial("_myPartial")
</div>
Run Code Online (Sandbox Code Playgroud)
我需要Scripts从_myPartial局部视图中注入部分内容.
我怎样才能做到这一点?
我想将所有JavaScript代码保存在一个部分中; 就body在我的主布局页面中的结束标记之前,只是想知道最好的去做,MVC风格.
例如,如果我创建一个DisplayTemplate\DateTime.cshtml使用jQuery UI的DateTime Picker 的文件,而不是将JavaScript直接嵌入到该模板中,那么它将在页面中间呈现.
在我的普通视图中,我可以使用@section JavaScript { //js here }然后@RenderSection("JavaScript", false)在我的主布局中,但这似乎不适用于显示/编辑器模板 - 任何想法?
在MVC3项目中,我有一个带有此代码的"_Layout.vbhtml"文件
<!DOCTYPE html>
<html>
<head>
</head>
<body>
...
<script src="@Url.Content("~/Scripts/jquery-1.8.2.min.js")"></script>
@RenderSection("Scripts", false)
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
然后,我在共享文件夹中有一个部分视图"ValidationScripts.vbhtml"
@Section Scripts
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.fix.js")"></script>
<script src="@Url.Content("~/Scripts/localization/messages_de.js")"></script>
End Section
Run Code Online (Sandbox Code Playgroud)
如果我从这样的视图中调用部分视图...
@ModelType MvcExample.MyModel
@Code
ViewData("Title") = "Test"
End Code
@Html.Partial("ValidationScripts")
<h2>Just a Test</h2>
...
Run Code Online (Sandbox Code Playgroud)
"脚本"部分未在页面上呈现,输出HTML为
<!DOCTYPE html>
<html>
<head>
</head>
<body>
...
<script src="@Url.Content("~/Scripts/jquery-1.8.2.min.js")"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
如何在局部视图中渲染剖面?
asp.net-mvc asp.net-mvc-partialview asp.net-mvc-views razor asp.net-mvc-3