2011-02-01 101 views
3

因为它是相当困难的谷歌搜索标点符号...ASP.NET MVC3 Razor - @ *做什么?

我知道剃须刀@开始一个代码块,但到底是什么@*办?据我可以告诉VS,它开始评论块。如果这与/*不同,怎么样?

+0

`@:`不是预编码的HTML。这是Razor解析器切换到标记模式直到在标记上下文中遇到的下一个新行字符的指示。 – marcind 2011-02-01 23:46:54

+0

@marcind I mispoke;修改问题以反映这一点。 – 2011-02-01 23:53:26

回答

6

@ *是一个服务器端评论:

如果你有这样的代码:

<p> 
    /* comment 1 */ 
    @* comment 2 *@ 
    <!-- comment 3 --> 
    @{ /* comment 4 */ } 
</p> 

注释1不起作用,因为您不处于服务器模式。该代码将被发送到浏览器,并且浏览器将显示它,因为/ *不是html注释。

此外,评论3将被发送到客户端。我甚至认为,如果它包含@块,它将在服务器上解析并执行。

注释2和4不会通过线路发送。但Nr 4有点难看。

1

来源: http://www.asp.net/webmatrix/tutorials/2-introduction-to-asp-net-web-programming-using-the-razor-syntax

对于ASP.NET剃须刀评论,你开始注释以@ *与* @结束。评论可以在一行或多行上。

如果我的理解正确,/*仅适用于<% %>块,因为/* */是C#语法的注释。您可以从<% %>块之外编写@*。 因此,而不是写评论像

<% /* This is 
a multiline comment */ %> 

它可以写成:

@* This is 
a multiline comment *@