Не могу передать байтовый массив в контроллер — c# asp.net-mvc entity-framework

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд
Загрузка...

Вопрос:


У меня изображения храняться в бд в формате байтового массива, через форич отлично все выводит, но когда я хочу открыть страницу для работы с определенным изображением, выдает ошибку про то, что я передаю не байтовое значение, хотя когда шагаю по коду и смотрю передаваемое значение, там отображает byte[значения].

@foreach (var item in Model)
{
    <tr>
        <td>
            @Html.Raw("<img style='width:80px; height:60px;' src="data:image/jpeg;base64,"
                + Convert.ToBase64String(item.Image) + "" />")
        </td>
        <td>
            @Html.ActionLink("Edit", "Edit", "Personal", new { id = item.Id, item.Image }, null)
        </td>
        <td>
            @Html.ActionLink("Remove", "Delete", "Personal", new { id = item.Id}, null)
        </td>
    </tr>
}

в Edit я передаю айди изображения и его байтовый массив
Сам Edit:

public ActionResult Edit(int id, byte[] image)
{
    ApplicationUser au = db.Users.Find(User.Identity.GetUserId());
    Picture pic = new Picture { Id = id, Image = image};
    return View(pic);
}

Структура таблицы

CREATE TABLE [dbo].[Pictures] (
[Id]                 INT             IDENTITY (1, 1) NOT NULL,
[Size]               NVARCHAR (MAX)  NULL,
[Image]              VARBINARY (MAX) NULL,
[UserId]             NVARCHAR (MAX)  NULL,
[ApplicationUser_Id] NVARCHAR (128)  NULL,
CONSTRAINT [PK_dbo.Pictures] PRIMARY KEY CLUSTERED ([Id] ASC),
CONSTRAINT [FK_dbo.Pictures_dbo.AspNetUsers_ApplicationUser_Id] FOREIGN KEY ([ApplicationUser_Id]) REFERENCES [dbo].[AspNetUsers] ([Id])
);

Ошибка

Мне кажется, что можно передать элемент коллекции как-то проще, но немогу заселектить в контроллере один элемент по айди.

Автор вопроса: Artem Danchenko

Amir Ashurov

А зачем передать через url изображению?? передайте просто id изображения и получите из базы по ид.
лучше бы создать какой нид Action типа DownloadPicture(imageId) и который будет возвращать изображению или base64 и можно было потом использовать

<img src="DownloadPicture(imageId)"/> 

Источник

Вам также может быть интересно:

Drag and Drop UWP — c# xaml mvvm
Вопрос: Нужно иметь возможность добавлять изображения в приложение путем перетаскивания из файловой системы У Grid включил AllowDrop. Но как добавить перетаскиваемые изображения в коллекцию? Т.к. те ...
Растягивание Высоты , Резина — html css html5
Вопрос: Здравствуйте! Реализовал резиновый дизайн. Растягивается ширина, но длина по % не растягивается. Возможно ли это реализовать? Или так и задумано, растягивание только на ширину ...
Jquery position().left Как быть на мобильниках? — javascript jquery css
Вопрос: На мобильных устройствах, если зумишь экран, position всегда разный. $('g').position().left Как сделать так, чтобы он не менял свои значения? Автор вопроса: ...
Jquery position().left Как быть на мобильниках? — javascript jquery css
Вопрос: На мобильных устройствах, если зумишь экран, position всегда разный. $('g').position().left Как сделать так, чтобы он не менял свои значения? Автор вопроса: ...
requestAnimation и очередность отрисовки — javascript canvas
Вопрос: Здравствуйте! Реализовал 2D игру и в Edge работает все плавно и круто, но в Firefox'e подвисает, сказали, что нужно сделать, чтобы раз-два момент и все ...
Контекстное/всплывающее меню в Android — java android popup
Вопрос: Есть ли техническая возможность сделать приложение, добавляющее свое контекстное или всплывающее меню в любом месте системы? Хочу, чтобы при выделении любого текста появлялась дополнительная кнопка ...
Контекстное/всплывающее меню в Android — java android popup
Вопрос: Есть ли техническая возможность сделать приложение, добавляющее свое контекстное или всплывающее меню в любом месте системы? Хочу, чтобы при выделении любого текста появлялась дополнительная кнопка ...
Завершить службы циклом — c# windows-service
Вопрос: Можно ли остановить службы циклом? У меня есть список служб, занёс их в List List<string> name = new List<string> { "AdobeARMservice", "RemoteRegistry", "TermService", "Messenger", "SSDPSRV", ...
Завершить службы циклом — c# windows-service
Вопрос: Можно ли остановить службы циклом? У меня есть список служб, занёс их в List List<string> name = new List<string> { "AdobeARMservice", "RemoteRegistry", "TermService", "Messenger", "SSDPSRV", ...
RecyclerView — разная разметка — android recyclerview
Вопрос: Смотрел, я смотрел в сторону RecyclerView и наконец решил кинуть ListView и на тебе! В "плохом прошлом" мой ListView использовался для двух разметок. Сейчас я ...
RecyclerView — разная разметка — android recyclerview
Вопрос: Смотрел, я смотрел в сторону RecyclerView и наконец решил кинуть ListView и на тебе! В "плохом прошлом" мой ListView использовался для двух разметок. Сейчас я ...
Как правильно передать массив аргументом для пользовательской функции — php
Вопрос: Если не брать в функцию все это, тогда результат работает. А если вот так в функции все выполнять, тогда PHP ругается: «Invalid ...
Как правильно передать массив аргументом для пользовательской функции — php
Вопрос: Если не брать в функцию все это, тогда результат работает. А если вот так в функции все выполнять, тогда PHP ругается: «Invalid ...
ViewPager внутри ViewPager — такие матрешки работают? — android viewpager
Вопрос: Доброго времени суток. Назрела новая задача. Есть каталог мастеров. При выборе конкретного мастера открывается его страница (активити с ViewPager), и теперь мастеров можно перелистывать свайпом. ...
Почему id всегда 1 Yii2 — yii авторизация
Вопрос: Использую все как по документации. Для получения информации о пользователе использую $identity = $model->findOne(]); И каким бы не был email, id пользователя всегда ...