Вывод изображения в представлении ASP.NET MVC

262
30 мая 2018, 14:10

В контроллере у меня есть два метода, Get и Post. В представлении первого создана форма, в которой пользователь загружает изображение и текстовый файл. В пост методе происходят некие операции над данными файлами, а потом возвращает обработанное изображение. И мне нужно чтобы я вернул не просто изображение (как это сделано в моем коде ниже), а чтобы вернулось представление, то есть оформленная страница, где будет вставлено данное изображение. Подскажите, как я могу это сделать? И еще вопрос, как я могу реализовать возможность загрузки этого изображения на ПК при нажатии соответствующей кнопки в представлении. Ниже представлен код контроллера

[HttpGet]
public ActionResult Encrypted()
{
    return View();
}
[HttpPost]
public ActionResult Encrypted(HttpPostedFileBase upload1, HttpPostedFileBase upload2, string key)
{
    string fileName1 = Path.GetFileName(upload1.FileName);
    string fileName2 = Path.GetFileName(upload2.FileName);
    upload1.SaveAs(Server.MapPath("~/Files/" + fileName1));

    Image image = Image.FromStream(upload2.InputStream);
    image.Save(Server.MapPath("~/Files/" + fileName2));
    string imagePath = Server.MapPath("~/Files/" + fileName2);
    Bitmap bmp = new Bitmap(imagePath);
    StreamReader sr = new StreamReader(Server.MapPath("~/Files/" + fileName1));
    string text = sr.ReadLine();
    text = Crypto.EncryptStringAES(text, key);
    var bmp1 = SteganoHelper.embedText(text, bmp);
    byte[] arr = bmp1.ToByteArray(ImageFormat.Bmp);
    return  File(arr, "image/bmp");
}
Answer 1

Есть варианта.

Первый: изображения достаточно маленькие и их можно передать через data:uri - в этом случае достаточно одного экшна/представления.

Второй: изображения крупные и сохраняются в базу, делаете два экшена/представления: в первом выводите станицу с тегом img который имеет в src ссылку на второй экшн.

Второй вопрос посмотрите тут

READ ALSO
Как получить список всех полей значимых типов у класса?

Как получить список всех полей значимых типов у класса?

Недавно открыл для себя даппер и теперь пишу свой репозиторий(велосипед) для негоВ ходе написания встала необходимость получить список всех...

190
list.sort в C# как list.sort в Python

list.sort в C# как list.sort в Python

python: есть list tuple-ов (каждый tuple в свою очередь состоит из 3-х int-ов) при сортировке данных методом listsort() вначале лист сортируется по первому параметру...

197
Ошибка с#, не виден член класа

Ошибка с#, не виден член класа

13cs(116,30): error CS1061: Type ConsoleApp11

192
Пример программы (привязка данных)

Пример программы (привязка данных)

Тут Пример привязки данных содержится пример программы на WPFЕсли у кого будет время и терпение объясните каким образом в ListBox который находится...

189