Razor / ASP.Net Core блок веб-кода не различает HTML-переменные - PullRequest
0 голосов
/ 27 сентября 2019

У меня ужасное время выясняется, почему этот код не будет использовать объявленную переменную isThumbNail ().Долгосрочный план состоит в том, чтобы добавить класс border-dark (или аналогичный), если это текущий эскиз.Я получаю красную загадку "Использование необъявленной переменной" под строкой, содержащей:

@(isThumbNail ? "border-dark" : "")

Я пытался обернуть весь блок кода в @ {}, оборачивая ошибочную переменную в @ {} и @ (), начиная строку html с @:, добавляя теги

и в начало строки и почти все остальные приемы в моем наборе инструментов.

            <div class="row">
            <div class="column col-12 ml-3 mt-3">
                @if (Model != null)
                {
                    bool isThumbNail;
                    for (int i = 0; i < Model.Images.Count; i++)
                    {
                        if (Model.Images[i].Filename == Model.ThumbNail)
                        { isThumbNail = true; }
                        var photoPath = "~/images/" + (Model.Images[i].Filename ?? "noimage.jpg");
  // offending line     <text><img class="img-fluid rounded @(isThumbNail ? "border-dark" : "")" height="50" width="50" src="@photoPath" alt="" asp-append-version="true"></text>
                    }
                }
            </div>
        </div>

1 Ответ

1 голос
/ 27 сентября 2019

Попробуйте вместо этого:

@if (Model != null)
{
    for (int i = 0; i < Model.Images.Count; i++)
    {
        bool isThumbNail = Model.Images[i].Filename == Model.ThumbNail
        var photoPath = "~/images/" + (Model.Images[i].Filename ?? "noimage.jpg");
        string klass = "img-fluid rounded" + ( isThumbnail ? " border-dark" : "" );

        <img class="@klass" height="50" width="50" src="@photoPath" alt="" asp-append-version="true" />

    }
}
...