Bootstrap 4 свернуть изображение прыгает только при загрузке с контроллера - PullRequest
0 голосов
/ 02 апреля 2019

Архитектура приложения проста. Пользователь может загружать изображения, которые хранятся на сервере, в папке за пределами wwwroot. Относительный путь изображений хранится в базе данных. Как гласит заголовок, при извлечении изображения с помощью действия контроллера в теле карты и последующем расширении происходит странное заикание / прыжок / отставание в первый раз. Я думаю, что это ч / б изображение загружается после того, как DOM готов, и при расширении карты, он должен пересчитать высоту (поправьте меня, если я не прав). Я пытался удалить отступы / поля, но безуспешно. Вот код:

Вид:

<div class="card border-top-0">
    <div class="expand">
        <a href="#" class="text-primary float-right" data-toggle="collapse" data-target="#collapse_1" aria-expanded="false" aria-controls="collapse_1"><i class="fas fa-angle-double-down"></i></a>
    </div>
    <div class="card-header border-0">...</div>
    <div class="collapse" id="collapse_1">
        <div class="card-body border-0">
        @{
            string path = @Url.Action("RenderImage", "MyController", new { imagePath = Model.ImagePath });
        }
            <div class="row">
                <div class="col-12">
                    <h5 class="card-title mb-1">My Image</h5>
                    <div class="overflow-hidden" style="height: 200px; width: 200px;">
                        <a href=@path target="_blank">
                        <img class="img-thumbnail" src=@path alt="" />
                        </a>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

Контроллер:

public IActionResult RenderImage(string imagePath)
{
    string filePath = Path.Combine(_hostingEnvironment.ContentRootPath, "Uploads", imagePath);

    FileStream stream = new FileStream(filePath, FileMode.Open);

    return File(stream, ImageHelper.GetContentType(imagePath));
}

Если я заменим path на какой-нибудь URL-адрес изображения, например этот , он будет работать без скипа. Если я использую изображение из wwwroot, проблем тоже нет.

Насколько я понимаю, представление отображается на сервере, а затем отправляется клиенту. Разве string path = @Url.Action("RenderImage", "MyController", new { imagePath = Model.ImagePath }); не должен выполняться при отображении страницы? Такое ощущение, что это немного после взаимодействия с представлением карты. Что мне не хватает? Мне нужна помощь, чтобы понять, что происходит и как я могу это решить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...