我正在将我的 .Master 代码移动到部分视图,因为我们在项目中包含了剃刀视图。我们使用局部视图来维护 .Master 和 _Layout 而无需重复代码。
_Layout 看起来像这样
<html>
<head>
<title>@RenderSection("Title", required: false)</title>
@RenderSection("Head", required: false)
@{ Html.RenderPartial("~/Views/Shared/Partials/head.Master.cshtml"); }
@RenderSection("HeadBottom", required: false)
</head>
<body @bodyClass id="@ViewData["bodyId"]">
@{
ViewData["renderBody"] = RenderBody();
ViewData["belowHeader"] = RenderSection("BelowHeader", required: false);
ViewData["bootomFixedContent"] = RenderSection("BootomFixedContent", required: false);
ViewData["insideFooter"] = RenderSection("InsideFooter", required: false);
Html.RenderPartial("~/Views/Shared/Partials/body.Master.cshtml");
}
@RenderSection("Scripts", required: false)
@{ Html.RenderPartial("~/Views/Shared/Partials/scripts.Master.cshtml"); }
</body>
</html>
我有一个问题。使用 razon 我可以这样做:
ViewData["belowHeader"] = RenderSection("BelowHeader", required: false); //Razor _Layout
然后在 RenderSection 应该在的部分内绘制 HtmlString。
var belowHeader = ViewData["belowHeader"] as HelperResult; //HelperResult contains the html string
@belowHeader //Inside the partial
但我不知道如何在 .Master 中做同样的事情
var belowHeader = FindControl("BelowHeader").ToString(); //.Master (This doesn't work)
关于如何解决这个问题或解决问题的其他方法的任何想法。
提前致谢。