1

我正在将我的 .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)

关于如何解决这个问题或解决问题的其他方法的任何想法。

提前致谢。

4

0 回答 0