Правильное отображение текста с помощью бритвы - PullRequest
0 голосов
/ 15 июля 2011

Я использую ASP.NET MVC 3. У меня есть следующий фрагмент кода в моем представлении бритвы:

@foreach(var c in Model.ChildCategories) {
     <div>@c.Name<br></div>
}

Это работает хорошо.Почему, когда я уберу теги div innder, он не будет работать?Вот что я попробовал:

@foreach(var c in Model.ChildCategories) {
     @c.Name<br>
}

Я не закрываю тег перерыва, потому что я использую строгий тип документа:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

Ошибка, которую я получаю, когда хочу просмотретьвид:

The foreach block is missing a closing "}" character.  Make sure you have a matching "}" character for all the "{" characters within this block, and that none of the "}" characters are being interpreted as markup.

Я бы предпочел не иметь внутренних тегов div, потому что я не хочу ненужных тегов в моей разметке.

У меня также есть следующий фрагмент кода:

@if (Model.ParentCategory != null)
{
     @Model.ParentCategory.Name
}
else
{
     @:N/A
}

Я хочу отобразить имя родительской категории или просто текст N / A.Я делаю это правильно?Лучше ли иметь фигурные скобки под if или рядом с ним, как if (...) {?

Ответы [ 2 ]

1 голос
/ 15 июля 2011

Посмотрите на бритву Фила Хаака о синтаксисе

@foreach(var c in Model.ChildCategories) 
{
  <text>
     @c.Name<br />
  </text>
}

но вместо использования <br /> рассмотрите возможность использования <p>

@foreach(var c in Model.ChildCategories) 
{
  <p>
     @c.Name
  </p>
}

последний бит с @:N/A правильный.

0 голосов
/ 15 июля 2011

попробуйте это ~

@foreach(var c in Model.ChildCategories) {
   <div>@{@c.Name}<br></div>
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...