Поскольку это все еще проблема с тегом <text>
в MVC 3 RTM + Tools Update, и это может быть настоящей головной болью, альтернатива подходу eddiegroves, заключающемуся в удалении пробелов из форматирования кода, состоит в том, чтобы избежать использованиятега <text>
в целом.
Во-первых, здесь переписан исходный код, который воспроизводит проблему и фактически выводит «1, 2, 3»:
@for (int i = 1; i <= 3; i++) {
@i
if (i < 3) {
<text>, </text>
}
}
Вотчетыре альтернативы, которые печатают «1, 2, 3» вместо «1, 2, 3», но сохраняют форматирование кода, используя @something вместо <text>
.
Решение # 1: Использование @ («»)
@for (int i = 1; i <= 3; i++) {
@i
if (i < 3) {
@(", ")
}
}
Решение № 2: Использование @ var
@for (int i = 1; i <= 3; i++) {
var s = i < 3 ? ", " : null;
@i @s
}
Решение № 3: Использование @ (выражение)
@for (int i = 1; i <= 3; i++) {
@i @(i < 3 ? ", " : null)
}
Решение № 4: Использование @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)
}
Последний пример явно избыточен для примера, но может быть полезен для более сложных элементов и разделителей.