HtmlHelper里面的Razor"如果"声明

Pri*_*est 5 c# asp.net-mvc razor

我编写了一个HtmlHelper扩展来根据我们的一些样式格式化一些内容.当未包含在if中时,帮助程序正确呈现内容.

但是,当我试图将它们包装在razor if语句中时,没有任何内容呈现,我怀疑它与Razor语法有关,我没有正确地做.

码:

<div class="notice">

    @if (DataModel.UserHasExpired)
    {
       Html.MyCustomNotificationBox("someparameter") // My helper Should render a div
    }

</div>
Run Code Online (Sandbox Code Playgroud)

如果我将我的通知箱放在if之外,它可以正常工作.我还验证了代码正在进入块中,但是当我检查它时,html中没有生成任何标记.

我尝试过像这样的@,以冒号结尾

@Html.MyCustomNotificationBox("somparameter");
Run Code Online (Sandbox Code Playgroud)

我甚至尝试过@Html.Raw(带上面的..),这完全错误了.

有任何想法吗?

Ser*_*kiy 19

您是否尝试将其放入text标签(这些标签不发送给客户端)?

@if (DataModel.UserHasExpired)
{
    <text>@Html.MyCustomNotificationBox("somparameter")</text>
}
Run Code Online (Sandbox Code Playgroud)


efk*_*kah 6

<p>
   @if (true)
   {
       @Html.Hello("World")
   }
</p>
Run Code Online (Sandbox Code Playgroud)

作品非常好