如何在Razor视图中写评论?


128

如何在MVC视图中编写注释,该注释不会传输到最终的HTML(即,发送到浏览器,响应)。可以用以下方式发表评论:

<!--<a href="https://stackoverflow.com/">My comment</a> -->

但是,它在浏览器的页面源代码中可见。

是否可以仅将“ .cshtml”文件中的注释留给内部使用?





Answers:


233

请注意,通常,像Visual Studio这样的IDE会在当前语言的上下文中标记注释,方法是选择要转换为注释的文本,然后使用Ctrl+ K Ctrl+ C快捷方式;如果使用的是Resharper / Intelli- J样式的快捷方式,然后Ctrl+ /

服务器端评论:

剃刀.cshtml

像这样:

@* Comment goes here *@

.aspx
对于那些寻找较旧.aspx视图(和Asp.Net WebForms)服务器端注释语法的人

<%-- Comment goes here --%>

客户端评论

HTML注释

<!-- Comment goes here -->

Javascript注释

// One line Comment goes Here
/* Multiline comment
   goes here */

如OP所述,尽管未在浏览器中显示,但仍将为服务器上的页面/脚本文件生成客户端注释,并由页面通过HTTP下载,除非删除(例如,缩小),否则将浪费I / O,并且,由于用户可以通过查看页面源或使用浏览器的开发工具或Fiddler或Wireshark之​​类的工具拦截流量来查看评论,因此也存在安全风险,因此,在生成的服务器上优先使用服务器端评论代码(例如MVC视图或.aspx页)。


2
忘记尝试了))))))我通常使用Ctrl + E,C和Ctrl + E,U。非常感谢
horgh 2012年

此响应不正确。请参阅对此问题的其他答复。
Zackary Geers '18

@ZackaryGeers我没有关注-醒目的答案似乎与我的原始答案重复,随后我增加了对OP的担忧,即隐藏注释供内部使用。什么不对?
StuartLC

1
但是我在Razor页面中使用了C#注释语法(//.../*...*/)。实际上不应该将其呈现为文本吗?
facepalm42

1
这取决于您放置//注释的位置。Razor可以包含C#部分(以@开头),HTML甚至JS部分的Script部分。服务器不会回显C#注释。js和html中的注释将发送到浏览器。// HTML中的注释将被视为文本,并且最终用户可能会看到。
StuartLC '19

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.