Da dies immer noch ein Problem mit dem <text>
Tag in MVC 3 RTM + Tools Update und es kann b e eine echte Kopfschmerzen zu bewältigen, ist eine Alternative zu Eddiegroves Ansatz zum Entfernen von Leerzeichen aus der Code-Formatierung ist die Verwendung der <text>
Tag insgesamt zu vermeiden.
Als erstes ist hier ein Umschreiben des ursprünglichen Code, der das Problem reproduziert und tatsächlich druckt "1, 2, 3":
@for (int i = 1; i <= 3; i++) {
@i
if (i < 3) {
<text>, </text>
}
}
Hier sind vier Alternativen, die "1, 2, 3" statt drucken von "1, 2, 3", aber bewahren Sie die Codeformatierung mit @something anstelle von <text>
.
Lösung # 1: Verwendung @ ("")
@for (int i = 1; i <= 3; i++) {
@i
if (i < 3) {
@(", ")
}
}
Lösung # 2: Verwendung von
@for (int i = 1; i <= 3; i++) {
var s = i < 3 ? ", " : null;
@i @s
}
Lösung # @var 3: Verwenden @ (expression)
@for (int i = 1; i <= 3; i++) {
@i @(i < 3 ? ", " : null)
}
Lösung # 4: Verwenden von @helpers
@helper Item(int index) {
@index
}
@helper Separator(int index, int count) {
if (index < count) {
@(", ")
}
}
@for (int i = 1; i <= 3; i++) {
@Item(i) @Separator(i, 3)
}
Die letzte ist offensichtlich übertrieben für das Beispiel, könnte aber ein nützliches Muster für kompliziertere Elemente und Separatoren sein.
Html.Raw funktioniert nicht innerhalb von Helfern, dafür die folgende Antwort. – Case
Die Antwort, auf die sich @Case bezieht, ist wahrscheinlich die Lösung # 4 von [Chris Toman's Antwort] (http://stackoverflow.com/a/7237191/2615878). – Theophilus