Spark中此MVC视图代码的等效语法是什么?
-
05-07-2019 - |
题
我在使用WebForms视图引擎的MVC项目中获得了此代码,我正在尝试将其转换为Spark。如何有条件地调用部分并传递视图数据?
<% if (UserService.IsAuthenticated && !Model.Post.IsDeleted) { %>
<% Html.RenderPartial("Reply", new ReplyViewModel { Id=Model.Post.PostId, CssClass="respond" }); %>
<% } %>
试过这个(无济于事,它在所有其他内容之前呈现部分):
<if condition="UserService.IsAuthenticated && !Model.Post.IsDeleted">
#Html.RenderPartial("Reply", new ReplyViewModel { Id=Model.Post.PostId, CssClass="respond" });
</if>
解决方案
的
<% if (UserService.IsAuthenticated && !Model.Post.IsDeleted) { %>
<% Html.RenderPartial("Reply", new ReplyViewModel { Id=Model.Post.PostId, CssClass="respond" }); %>
<% } %>
和
<if condition="UserService.IsAuthenticated && !Model.Post.IsDeleted">
#Html.RenderPartial("Reply", new ReplyViewModel { Id=Model.Post.PostId, CssClass="respond" });
</if>
和<!> lt; test if = <!> quot; <!> quot; <!> gt;变异应该都可以工作并生成几乎相同的代码:
if (UserService.IsAuthenticated && !Model.Post.IsDeleted)
{
Html.RenderPartial("Reply", new ReplyViewModel { Id=Model.Post.PostId, CssClass="respond" });
}
也许尝试输出$ {UserService.IsAuthenticated}和$ {Model.Post.IsDeleted}以确定条件并非总是如此?
好的 - 在另一种媒体中证实这是不正确的......是否可能<!>“回复<!>”; partial是一个WebForms视图,如Reply.ascx或Reply.aspx? WebForms存在一个问题,它默认输出将直接转到当前的HttpContext响应输出,这使得很难将这些部分与使用假脱机或图层输出的视图引擎交错。
有一种方法可以解决其中一个Spark样本,但这有点棘手。
其他提示
尝试使用测试if = <!> quot; <!> quot;语法
<test if="UserService.IsAuthenticated && !Model.Post.IsDeleted">
${Html.RenderPartial("Reply", new ReplyViewModel { Id=Model.Post.PostId, CssClass="respond" });}
</test>
感谢路易斯在Twitter上的帮助,问题在于部分被调用的是.ascx文件,而不是.spark文件。我还没有删除旧的,未转换的.ascx文件。一旦删除了Reply.ascx,一切都按预期工作。
不隶属于 StackOverflow