servicestack,Razor,servicestack" /> servicestack,Razor,servicestack" />

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

ServiceStack Razor:如何在@section中呈现Html.Partial视图?,razor,servicestack,Razor,servicestack,我当前无法获取@Html.Partial()以呈现@节中的视图 ServiceStack是否支持此功能?在我下面的示例代码中,第一个部分(在@部分之外)不会被渲染。在@部分中仅呈现周围的HTML 我的文件夹结构如下所示: /观点/ MyLayout.cshtml MyView.cshtml /共享/ _MyPartialView.cshtml MyLayout.cshtml如下所示: @inherits ServiceStack.Razor.ViewPage<MyViewMod

我当前无法获取
@Html.Partial()
以呈现
@节中的视图

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

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

  • /观点/
    • MyLayout.cshtml
    • MyView.cshtml
  • /共享/
    • _MyPartialView.cshtml
MyLayout.cshtml如下所示:

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

@RenderBody()

<div id="sidebar">
    @RenderSection("sidebar")
</div>
@继承ServiceStack.Razor.ViewPage
...
@RenderBody()
@渲染部分(“侧栏”)
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>
}
@继承ServiceStack.Razor.ViewPage
@{
Layout=“MyLayout”;
}
@Html.Partial(“\u MyPartialView”)
@节侧栏{
侧栏
@Html.Partial(“\u MyPartialView”)
其他一些内容

}

部分视图只包含纯HTML。

也许您可以这样做

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

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

    @myPartialView

    <p>Some other content</p>
}
@{var myPartialView=Html.Partial(“_myPartialView”);}
@节侧栏{
侧栏
@myPartialView
其他一些内容

}

由于Html.Partial只返回一个MvcHtmlString,因此您可以将其放入变量。

我几天前在Github上报告了该漏洞,并且@mythz提交了一个解决方案

见我的SO帖子:

好消息是,该修复程序可通过Myget()获得4.0.16(预发行版)

以下是Github上的问题:


它对我也不起作用-可能是Razor的局限性?@jeffgabhart我在ASP.net MVC4应用程序上测试了它,效果很好,所以我认为它是ServiceStack中的一个bug。在ServiceStack源代码中,我可以看到两个部分都执行了相同的代码,但是部分中的代码没有出现,就好像部分内容出于某种原因写入了不同的输出流。我会提出一个错误报告,但据我所知,他们似乎不允许在他们的github项目中使用它。我尝试过,但没有效果-通过ServiceStack代码Html单步执行。Partial确实尝试从视图引擎的RenderPartial()结果创建一个MvcHtmlString,但它始终为空。