Комментарий между else и {
Я только начал использовать Razor вместо WebForms-ViewEngine. Теперь в моем Razor-View у меня есть что-то вроде этого:
@{
int i = 42;
string text;
if (i == 42)
{
text = "i is 42!";
}
else //i is not 42 //<- Error here
{
text = "i is something else";
}
}
Я получаю предупреждение, и во время выполнения он получает исключение в строке else:
Ожидаемое значение "{", но найдено "/". Заявления блока должны быть заключены в "{" и "}". Вы не можете использовать инструкции управления потоком одного оператора на страницах CSHTML.
По-видимому, компилятор не любит комментарии между else и {. Я также пробовал комментировать @* и /*, что давало похожие сообщения об ошибках.
Есть ли способ сделать комментарий в бритве, как я хочу?
Отказ от ответственности:
Да, я знаю, что могу исправить это просто так:
@{
int i = 42;
string text;
if (i == 42)
{
text = "i is 42!";
}
else
{ //i is not 42
text = "i is something else";
}
}
Однако это не соответствует нашим правилам в отношении кодирования, и комментарий в той же строке делает мои намерения более ясными.
Ответы
Ответ 1
То, как построен парсер Razor. Вы всегда можете отправить запрос об ошибке/функции на MS-соединение, если вам не нравится, как он есть, и надеемся, что люди будут голосовать за него, и он будет исправлен/реализован в будущей версии синтаксического анализатора. Лично я бы не потому, что мне все равно (см. Ниже почему).
Как говорится, зачем заботиться? Я имею в виду, что вы не должны писать код на странице Razor. Страница Razor предназначена для использования в качестве представления. В ASP.NET MVC представление используется для отображения некоторой информации из модели представления, которая передается ей из действия контроллера. Разметка первичная, смешанная с HTML-помощниками и отображение информации из модели представления. Но код С# - нет. Так что вы вызываете код и то, что вы показали в своем вопросе, строго нечего делать в представлении Razor.