ServiceStack Razor:如何在@section中呈现Html.Partial视图?

时间:2013-08-27 13:27:39

标签: razor servicestack

我目前无法让@Html.Partial()@section内呈现视图。

ServiceStack是否支持此功能?在下面的示例代码中,第一个部分(@section之外) 会被渲染。在@section内,只有周围的HTML才会被呈现。

我的文件夹结构如下所示:

  • /查看/
    • MyLayout.cshtml
    • MyView.cshtml
  • /共享/
    • _MyPartialView.cshtml

MyLayout.cshtml看起来像这样:

@inherits ServiceStack.Razor.ViewPage<MyViewModelBase>
...

@RenderBody()

<div id="sidebar">
    @RenderSection("sidebar")
</div>

MyView.cshtml包含:

@inherits ServiceStack.Razor.ViewPage<MyViewModel>

@{
    Layout = "MyLayout";
}

@Html.Partial("_MyPartialView")

@section sidebar {
    <h2>Side Bar</h2>

    @Html.Partial("_MyPartialView")

    <p>Some other content</p>
}

部分视图只包含纯HTML。

2 个答案:

答案 0 :(得分:2)

也许你可以做这样的事情?

@{ var myPartialView = Html.Partial("_MyPartialView"); }

@section sidebar {
    <h2>Side Bar</h2>

    @myPartialView

    <p>Some other content</p>
}

因为Html.Partial只返回一个MvcHtmlString,你可以把它放到一个变量中。

答案 1 :(得分:2)

几天前我在Github上报告了这个错误,@ mythz对这个问题做了修复。

请参阅我的帖子:Service Stack 4.0.15: Razor Partial not outputted inside @section

好消息是通过Myget(https://github.com/ServiceStack/ServiceStack/wiki/MyGet)提供4.0.16(预发布)的修复

以下是Github上的问题:

https://github.com/ServiceStack/Issues/issues/60