ContentPlaceHolder到HtmlString

时间:2013-04-23 22:01:07

标签: c# asp.net asp.net-mvc asp.net-mvc-3 razor

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

有关如何解决此问题的任何想法或解决问题的其他方法。

提前致谢。

0 个答案:

没有答案