Wie schreibe ich einen Kommentar in einer Razor-Ansicht?

128

So schreiben Sie einen Kommentar in eine MVC-Ansicht, der nicht an den endgültigen HTML-Code (dh an den Browser, an die Antwort) übertragen wird. Man kann einen Kommentar abgeben mit:

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

Es ist jedoch im Seitenquellcode des Browsers sichtbar.

Ist es möglich, Kommentare in '.cshtml'-Dateien nur für den internen Gebrauch zu hinterlassen?

horgh
quelle
5
C # Razor Syntax
Kurzreferenz
2
Ich habe ein Duplikat meiner Frage gefunden: stackoverflow.com/questions/3382903/razor-comment-syntax
horgh
1
Ein weiteres Duplikat: stackoverflow.com/questions/4467496/…
Nathan Hartley
1
Mögliches Duplikat der Razor-Kommentarsyntax
Jon Schneider

Antworten:

233

Beachten Sie, dass IDEs wie Visual Studio im Allgemeinen einen Kommentar im Kontext der aktuellen Sprache markieren, indem Sie den Text auswählen, den Sie in einen Kommentar umwandeln möchten , und dann die Verknüpfung Ctrl+ K Ctrl+ verwenden Coder Resharper / Intelli- verwenden. J-Verknüpfungen, dann Ctrl+ /.

Serverseitige Kommentare:

Rasiermesser .cshtml

Wie so:

@* Comment goes here *@

.aspx
Für diejenigen, die nach der serverseitigen Kommentarsyntax der älteren .aspxAnsicht (und Asp.Net WebForms) suchen :

<%-- Comment goes here --%>

Clientseitige Kommentare

HTML-Kommentar

<!-- Comment goes here -->

Javascript Kommentar

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

Wie OP erwähnt, werden clientseitige Kommentare für die Seite / Skriptdatei auf dem Server generiert und von der Seite über HTTP heruntergeladen , obwohl sie nicht im Browser angezeigt werden. Wenn sie nicht entfernt werden (z. B. Minimierung), werden E / A und E verschwendet Da der Kommentar vom Benutzer durch Anzeigen der Seitenquelle oder Abfangen des Datenverkehrs mit den Dev Tools des Browsers oder einem Tool wie Fiddler oder Wireshark angezeigt werden kann, kann dies ebenfalls ein Sicherheitsrisiko darstellen , weshalb die Verwendung serverseitiger Kommentare auf dem generierten Server bevorzugt wird Code (wie MVC-Ansichten oder ASPX-Seiten).

StuartLC
quelle
2
Ich habe vergessen, es zu versuchen))))) Ich benutze normalerweise Strg + E, C und Strg + E, U. Vielen Dank
Horgh
Diese Antwort ist falsch. Siehe die andere Antwort auf diese Frage.
Zackary Geers
@ZackaryGeers Ich folge nicht - die ernüchternde Antwort scheint meine ursprüngliche Antwort dupliziert zu haben, und ich habe sie anschließend erweitert, um auf die Bedenken des OP zu reagieren, Kommentare für den internen Gebrauch versteckt zu halten. Was ist falsch?
StuartLC
1
Ich verwende jedoch die C # -Kommentarsyntax ( //..., /*...*/) auf der Razor-Seite. Sollte es nicht tatsächlich als Text gerendert werden?
facepalm42
1
Es hängt davon ab, wo Sie den // Kommentar platzieren. Razor kann C # -Abschnitte (gekennzeichnet durch ein beginnendes @), HTML- und sogar JS-Abschnitte enthalten. Skriptabschnitte. C # -Kommentare werden vom Server nicht wiedergegeben. Kommentare in js und html werden an den Browser gesendet. // Kommentare in html werden als Text betrachtet und sind wahrscheinlich für den Endbenutzer sichtbar.
StuartLC
18

Diese Kommentarsyntax sollte für Sie funktionieren:

@* enter comments here *@
ernüchternd
quelle