ASP.NET MVC部分呈现的问题,我有_Layout.cshtml我的MVC应用程序,这是如下定义:使用剃刀
@inherits System.Web.Mvc.WebViewPage
@using Webdiyer.WebControls.Mvc;
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
@RenderSection("HeaderContent", false)
</head>
<body>
@RenderBody()
</body>
</html>
在页面SomePage.cshtml,我已经包括了布局,也包括部分呈现建筑,因为我希望我_MailForm.cshtml此页面上呈现:
@{
View.Title = "page";
Layout = "~/Views/Shared/_Layout.cshtml";
}
@Html.Partial("_MailForm")
我的_MailForm.cshtml文件看起来如下:
@inherits System.Web.Mvc.WebViewPage<CMS.Models.Mail.MailModel>
@section HeaderContent
{
<script src="@Url.Content("~/Scripts/mail.js")" type="text/javascript"></script>
}
<form>...</form>
在_MailForm.cshtml声明的HeaderContent部分,假设从_Layout.cshtml和负载在mail.js脚本渲染。该脚本实际上是而不是加载,因为我的表单逻辑不起作用。如果我将标题内容部分从_MailForm.cshtml改为SomePage.cshtml,一切正常,因为mvc加载脚本。
但如何从_MailForm.cshtml文件中加载该脚本?
问候
这实际上是通过设计,这些部分只能填充直接的父母......我也遇到了同样的问题, – Buildstarted 2010-10-29 22:14:02
是否有任何解决方法那么,或者一些不同的方法来解决这个问题?移动该部分以指导其父母的父母是唯一的解决方案? – jwaliszko 2010-10-30 09:44:39
那么,最简单的方法是将所有的JavaScript合并成一个文件,这将减少页面加载带宽和通常使最终用户更好,因为他们只需要加载一次JavaScript文件一次...但是这不是您要查找的解决方案。由于'SomePage.cshtml'文件具有硬编码的部分页面,我会说包括您在该页面中所需的脚本现在可以正常使用,并且可以将脚本放在body标签中。 – Buildstarted 2010-11-01 17:20:55