C# 什么';用@(“<;foo>;”)封闭剃须刀线的目的是什么?
我正在查看其他人的HTML(在.NET web应用程序中),并不断看到如下代码:C# 什么';用@(“<;foo>;”)封闭剃须刀线的目的是什么?,c#,html,asp.net-mvc,vb.net,razor,C#,Html,Asp.net Mvc,Vb.net,Razor,我正在查看其他人的HTML(在.NET web应用程序中),并不断看到如下代码: @("<foo>") @(“”) 但这似乎可以简单地写成foo,并获得相同的结果。我假设这是razor语法,但我不理解用@(“”括起字符串的目的 有人能解释一下吗?使用谷歌很难找到一个明确的答案 提前谢谢 一个可能的原因是允许在多个位置关闭标签,例如 <div> @(if foo == bar) { //some content here </div> }
@("<foo>")
@(“”)
但这似乎可以简单地写成foo
,并获得相同的结果。我假设这是razor语法,但我不理解用@(“”
括起字符串的目的
有人能解释一下吗?使用谷歌很难找到一个明确的答案
提前谢谢 一个可能的原因是允许在多个位置关闭标签,例如
<div>
@(if foo == bar)
{
//some content here
</div>
}
else
{
//some other content here
</div>
}
@(如果foo=巴)
{
//这里有一些内容
}
其他的
{
//这里还有其他一些内容
}
不是有效的razor语法,其中为
@Html.Raw("<div>")
@(if foo == bar)
{
//some content here
@Html.Raw("</div>")
}
else
{
//some other content here
@Html.Raw("</div>")
}
@Html.Raw(“”)
@(如果foo=巴)
{
//这里有一些内容
@Html.Raw(“”)
}
其他的
{
//这里还有其他一些内容
@Html.Raw(“”)
}
是有效的。作为我以上评论的补充,下面是在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>
@对于(变量i=0;i<9;i++)
{
如果(i!=0&&i%3==0)
{
@("")
}
@我
}
这将大致产生:
<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>
1.
2.
3.
4.
5.
6.
7.
8.
9
可能是为了防止
被解释为标签。实际上,恰恰相反。这意味着允许将
作为标记输出到页面,而不会影响Razor解析器@Carl在下面的回答非常准确,但我看到forloops中最常用的方法是在一定次数的迭代后关闭并重新打开外部标记,例如.FWIW,以下所有操作都将用于相同的目的:@(“”
,@Html.Raw(“”
),@:
这可以通过简单地将
移出条件块来避免。是的,它可以-这只是用法的一种可能解释。@Carl我明白了-这现在有意义了!谢谢:-)