UnluckySerivelha
@UnluckySerivelha

Нелогично работают теги в Razor?

Cразу извиняюсь, если вопрос задан неверно или ошибка очень проста, с шаблонами asp.net сталкиваюсь впервые.
Нужно поправить шаблон для вывода карточек, заменив div.catalog-item на a.catalog-item, т.е. просто поменять самый верхний divна a. Меняю, но после этого на странице выводится html, в котором тег a закрывается сразу после открывающего тега.
Отрендеренный html
5b8e6a8f47c95386571548.jpeg
Код шаблона
<a class="catalog-item" style="background: url(@N.Quest.Image.Split('|')[0]) no-repeat;background-size: cover;    background-position: center center;" id="@Html.Raw("Q" + N.Quest.Id)">
                <div class="item-content">1
                    <h4><a href="/Quest/@N.Quest.Url"><span>@N.Quest.Title</span></a></h4>
                    <div class="raiting-quest">
                        @if (N.Rait == "0")
                        { @Html.Raw("?") }
                        else
                        { @Html.Raw(N.Rait) }
                    </div>
                    <div class="intricacy middle">
                        <span>
                            @switch (N.Quest.Difficult)
                            {
                                case 0:
                                    @Html.Raw("Легкий")
                                    break;
                                case 1:
                                    @Html.Raw("Средний")
                                    break;
                                case 2:
                                    @Html.Raw("Сложный")
                                    break;
                            }
                        </span>
                    </div>
                    <div class="bottom-text">
                        <p>@N.Quest.Summary</p>
                        <ul>
                            <li><span class="price">от @(N.Quest.ValueMin)</span></li>
                            <li><span class="metro" alt="@N.Quest.City, @N.Quest.Adress"><a class="abl" href="/search/closest-@WebUI.Core.Config.Pairs.First(x => x.Value == N.Quest.City).Key-@WebUI.Core.Config.Pairs.First(x => x.Value == N.Quest.Region).Key">@N.Quest.Region</a></span></li>
                        </ul>
                    </div>
                </div>
            </a>

В чем проблема, что не так?
Заранее спасибо
  • Вопрос задан
  • 71 просмотр
Решения вопроса 1
@Free_ze
Пишу комментарии в комментарии, а не в ответы
Дело не в razor, а в том, что вы заведомо пишите невалидную разметку. Как должен браузер обрабатывать клик по внутренней ссылке? Игнорировать ее или внешнюю? Он, вероятно, что-то все же сделает, но не факт то, что вы ожидаете. А парсер разметки в Razor считает, что лучше вот так интерпретировать.

Судя по тому, что на внешней ссылке (catalog-item) нет аттрибута "href" (он обязателен), вам она нужна лишь для руки-указателя. Того же эффекта можно добиться с div:
.catalog-item:hover { cursor: pointer; }
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Теги <a> не могут быть вложенными, а чуть ниже объявляется

a href="/Quest/@N.Quest.Url"
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы