【问题标题】:Razor code block usageRazor 代码块使用
【发布时间】:2013-01-14 07:08:02
【问题描述】:

我刚刚开始使用网页,我不太明白为什么代码块不起作用。我需要有条件地显示一个 WebGrid。在我开始之前,我有这个:

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

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

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

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

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

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

【问题讨论】:

  • 好的,看来我需要为 HTML 输出使用另一个 @ 符号:@if (condition) { @grid.GetHtml() }

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


【解决方案1】:

对于一行语句,您应该使用@ 符号而不是将其放在代码块中。 如果你仍然把它放在一个代码块中(有些情况你需要)它不会通过调用grid.GetHtml();来显示你的网格这就是为什么使用@符号,这意味着你想写出一些值,但仅当您使用 HTML 代码编写时才应使用它。当使用代码块时,你必须告诉服务器这个值应该被写出,像这样:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多