剃刀代码块使用

时间:2013-01-14 07:08:02

标签: asp.net-webpages webmatrix-2 razor-2

我刚刚开始使用网页,但我无法弄清楚为什么代码块不起作用。我需要有条件地显示一个WebGrid。在我开始之前,我有这个:

<div>
@grid.GetHtml()
</div>

现在我尝试插入一个if语句:

<div>
  @if (condition) { grid.GetHtml(); }
</div>

这导致没有网格html显示。实际上,即使没有if语句,也只是使用代码块,我得不到html:

<div>
  @{ grid.GetHtml(); }
</div>

不幸的是我正在运行WebMatrix所以我无法调试,但似乎每当我使用代码块时,语句都不会执行。

1 个答案:

答案 0 :(得分:3)

对于一行语句,您应该使用@符号而不是将其放在代码块中。 如果你仍然把它放在一个代码块中(在某些情况下你需要)它只会调用grid.GetHtml();它不会显示你的网格这就是使用@符号的原因,这意味着你要写出来一些价值,但是如果你用HTML代码编写,你应该只使用它。使用代码块时,您必须告诉服务器应该写出这个值,如下所示:

@{
this.Write(grid.GetHtml());
}