我正在将我的.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)
有关如何解决此问题的任何想法或解决问题的其他方法。
提前致谢。