使用@(&#34; <foo>&#34;)封闭剃须刀串的目的是什么?</foo>

时间:2014-09-16 16:13:26

标签: c# html asp.net-mvc vb.net razor

我正在查看其他人的HTML(在.NET网络应用程序中)并继续看到如下所示的代码:

@("<foo>")

但似乎这可以简单地写成foo并获得相同的结果。我假设这是剃刀语法,但我不明白用@(" ")括起字符串的目的。

任何人都能解释一下吗?使用谷歌很难找到一个明确的答案。

提前致谢!

2 个答案:

答案 0 :(得分:2)

一个可能的原因是允许在多个地方关闭标签,例如

<div>
@(if foo == bar)
{
    //some content here
    </div>

}
else
{
    //some other content here
    </div>
}

无效的剃刀语法在哪里

@Html.Raw("<div>")
@(if foo == bar)
{
    //some content here
    @Html.Raw("</div>")

}
else
{
    //some other content here
   @Html.Raw("</div>")
}

有效。

答案 1 :(得分:0)

作为上述评论的补充,这里是一个在for循环中使用它的例子:

<div class="row">
@for (var i = 0; i < 9; i++)
{
    if (i != 0 && i % 3 == 0)
    {
        @("</div><div class='row'>")
    }

    <div class="col">@i</div>        
}
</div>

大致会产生:

<div class="row">
    <div class="col">1</div>
    <div class="col">2</div>
    <div class="col">3</div>
</div>
<div class="row">
    <div class="col">4</div>
    <div class="col">5</div>
    <div class="col">6</div>
</div>
<div class="row">
    <div class="col">7</div>
    <div class="col">8</div>
    <div class="col">9</div>
</div>