Я пытаюсь отобразить изображение из моей базы данных, но изображение не будет заполнять src атрибута img html - PullRequest
0 голосов
/ 27 мая 2019

У меня есть изображение, сохраненное в базе данных путем преобразования байтового массива в строку, а затем я пытаюсь переделать изображение в представлении.Но я хотел сделать так, чтобы, если изображение было нулевым (без загрузки изображения), чтобы они получали изображение по умолчанию «без изображения».Но, кажется, когда я пытаюсь сделать заявление if с моей точки зрения с помощью бритвы.Img src не может найти переменную в операторе if.Причина, по которой мне нужно заполнить src на img вне оператора if, заключается в том, что когда я отправляю форму, мне нужно отправить данные img обратно в действие в контроллере, чтобы преобразовать их и сохранить в базе данных.

Я пытаюсь просмотреть различные способы исправить это, лучшее, что я могу сделать, это сделать скрипты внутри моего оператора if.но он все равно не будет подключаться к моему img src.

    <!--Remaking the image from a stromg to a char
    array to a byte array to a imagefrom the
    database to the original image-->
    @if (Model.ImagePath != null)
    {

        char[] imageChars = Model.ImagePath.ToCharArray();
        byte[] imageBytes = imageChars.Select(b => (byte)b).ToArray();
        var base64 = Convert.ToBase64String(imageBytes);
        var imgSrc = String.Format("data:image/gif;base64,{0}", base64);
        <script>
            var img = getElementById("ImagePath").src;
            img.src = "@imgSrc";
        </script>
    }
    else
    {
        <script>
            var img = getElementById("ImagePath");
            img.src = "~/Content/no-image-icon.jpg";
            getElementById("ImagePath").width = "100";
            getElementById("ImagePath").height = "100";
        </script>
    }
    <img id="ImagePath" alt=""/>

, когда я проверяю страницу, сценарий преобразовал изображение обратно в правильный формат, он просто не отправит его в img src.

Ответы [ 2 ]

0 голосов
/ 27 мая 2019

Я понял, что сделал новую переменную в моей модели и добавил строку к ней в своем действии, которая загружает страницу, а затем просто установил ее как img src.Спасибо за помощь!

0 голосов
/ 27 мая 2019

У вас есть:

<script>
    var img = getElementById("ImagePath").src;
    img.src = "@imgSrc";
</script>

Похоже, это настройка img.src.src, что не имеет смысла. Это должно быть так, верно? :

<script>
    var img = getElementById("ImagePath");
    img.src = "@imgSrc";
</script>

И вы также можете удалить все разрывы строк:

<script>
    var img = getElementById("ImagePath");
    var imgSrc = "@imgSrc";
    img.src = imgSrc.replace(/[\r|\n]/gm,'');
</script>

Кроме того, как отметил Дивья, ваш элемент изображения должен находиться перед тегами сценария, иначе, если у вас есть getElementById("ImagePath");, он не сможет найти этот элемент, поскольку он еще не загружен.

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