我知道如何在_Layout.cshtml文件上设置.css文件,但是基于每个视图应用样式表呢?
我的想法是,在_Layout.cshtml中,你有<head>标签可以使用,但在你的一个非布局视图中却没有.哪里的<link>标签去?
我想将所有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
鉴于MVC3和Razor引擎,我得到了
_MasterLayout.cshtml
@RenderSection("JavaScript", required: false)
..
..
@RenderBody()
..
Run Code Online (Sandbox Code Playgroud)
View.cshtml与_ViewStart.cshtml中定义的_MasterLayout.cshtml
..
@Html.RenderAction("PartialView", "PartialController")
..
Run Code Online (Sandbox Code Playgroud)
PartialView.cshtml
..
@section JavaScript
{
........
}
..
Run Code Online (Sandbox Code Playgroud)
如何确保部分视图中的JavaScript最终出现在"主布局"部分中?
上述方案不起作用,因为局部视图没有定义主布局.另一方面,视图确实具有定义了RenderSection的布局.如果我将部分JavaScript从部分视图移动到View,Razor知道将其渲染到何处.但是,由于部分视图没有布局,因此它不知道如何处理部分JavaScript,因此不会将其呈现在任何地方.
当我遇到需要在特定元素上初始化jQuery ui的情况时,我想在部分视图中包含脚本.它确实属于部分而不是包含页面或布局.
据说有一种方法可以在MVC 4中完成,但我似乎无法找到任何信息.
我们正在制作一个.Net MVC websolution,它将使用呈现为HTML.Partials()的小部件.我们希望部分视图能够在主页面视图脚本标签中添加其依赖项,包括css文件和javascript文件.
我一直在尝试使用此代码.但是js文件没有在我页面的布局部分呈现.怎么了?
@{
var bundle = System.Web.Optimization.BundleTable.Bundles.GetRegisteredBundles()
.Where(b => b.Path == "~/bundles/jquery")
.First();
bundle.Include("~/Scripts/addtojquerybundletest.js");
}
Run Code Online (Sandbox Code Playgroud) 在我的局部视图中,.hide函数最初不会为第二人称和第三人称渲染,因此延迟.hide和.fadein也不起作用。我是js和jquery的新手,所以我可能缺少明显的东西...为什么此js脚本无法在部分视图中运行?
一切都在主视图中时一切正常,但是我需要部分视图是因为我不想每15秒重新加载整个页面。我已经做过一些研究,获取html数据类型可能有问题吗?
主视图:
@model IEnumerable<project.Models.MyList>
<div id="scrolllist">
@Html.Partial("_ScrollList")
</div>
@section Scripts{
<script>
function loadScrollListPV() {
$.ajax({
url: "@Url.Action("ScrollList")",
type: 'GET', // <-- make a async request by GET
dataType: 'html', // <-- to expect an html response
success: function(result) {
$('#scrolllist').html(result);
}
});
}
$(function() {
loadScrollListPV();
// re-call the functions each 15 seconds
window.setInterval("loadScrollListPV()", 15000);
});
</script>
}
Run Code Online (Sandbox Code Playgroud)
控制器动作:
public ActionResult ScrollList()
{
return PartialView("_ScrollList", db.MyList.ToList());
}
Run Code Online (Sandbox Code Playgroud)
部分视图:
@model IEnumerable<project.Models.MyList>
<div id="firstperson">
@*Get lastest record and display.*@
@foreach (var …Run Code Online (Sandbox Code Playgroud)