Razor内部的HtmlHelper"如果"声明

时间:2012-12-10 21:33:03

标签: 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>

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

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

@Html.MyCustomNotificationBox("somparameter");

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

有什么想法吗?

2 个答案:

答案 0 :(得分:19)

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

@if (DataModel.UserHasExpired)
{
    <text>@Html.MyCustomNotificationBox("somparameter")</text>
}

答案 1 :(得分:6)

<p>
   @if (true)
   {
       @Html.Hello("World")
   }
</p>

作品非常精致