Spark中此MVC视图代码的等效语法是什么?

Joh*_*han 3 asp.net-mvc spark-view-engine

我在使用WebForms视图引擎的MVC项目中获得了此代码,我正在尝试将其转换为Spark.如何有条件地调用部分并传递视图数据?

<% if (UserService.IsAuthenticated && !Model.Post.IsDeleted) { %>
    <% Html.RenderPartial("Reply", new ReplyViewModel { Id=Model.Post.PostId, CssClass="respond" }); %>
<% } %>
Run Code Online (Sandbox Code Playgroud)

试过这个(无济于事,它在所有其他内容之前呈现部分):

<if condition="UserService.IsAuthenticated && !Model.Post.IsDeleted">
    #Html.RenderPartial("Reply", new ReplyViewModel { Id=Model.Post.PostId, CssClass="respond" });
</if>
Run Code Online (Sandbox Code Playgroud)

lou*_*dej 6

<% if (UserService.IsAuthenticated && !Model.Post.IsDeleted) { %>
    <% Html.RenderPartial("Reply", new ReplyViewModel { Id=Model.Post.PostId, CssClass="respond" }); %>
<% } %>
Run Code Online (Sandbox Code Playgroud)

<if condition="UserService.IsAuthenticated && !Model.Post.IsDeleted">
    #Html.RenderPartial("Reply", new ReplyViewModel { Id=Model.Post.PostId, CssClass="respond" });
</if>
Run Code Online (Sandbox Code Playgroud)

并且<test if ="">变体应该全部工作并产生几乎相同的代码:

if (UserService.IsAuthenticated && !Model.Post.IsDeleted) 
{ 
    Html.RenderPartial("Reply", new ReplyViewModel { Id=Model.Post.PostId, CssClass="respond" });
}
Run Code Online (Sandbox Code Playgroud)

也许尝试输出$ {UserService.IsAuthenticated}和$ {Model.Post.IsDeleted}来绝对确定条件并不总是正确的?


好的 - 在另一个媒体中确认是不正确的......"回复"部分是否可能是一个WebForms视图,如Reply.ascx或Reply.aspx?WebForms存在一个问题,默认情况下它的输出将直接转到当前的HttpContext响应输出,这使得很难将这些部分与使用假脱机或图层输出的视图引擎交错.

有一种方法可以解决其中一个Spark样本,但这有点棘手.