MVC Извлечение фотографии из базы данных и отображение в виде с помощью карт Bootstrap - PullRequest
0 голосов
/ 26 мая 2018

Я создаю приложение Animal Shelter, и когда кто-то смотрит на животных, я отображаю его с помощью загрузочных карт.Я не знаю, как получить изображения для отображения, хотя.Я очень новичок в MVC и C #, поэтому я не понимаю многих ответов, которые размещены в Интернете на этот конкретный вопрос.

Модель:

public class Pet
{
    public int Pet_ID { get; set; }

    // Other properties

    public string Photo { get; set; }
}

Контроллер:

public ActionResult ShowCats()
    {
        var cats = db.Pets.Where(c => c.Species_Type == Species_Type.Cat).ToList();
        return View(cats);
    }

Вид:

<div class="container">
@foreach (var item in Model)
{
    <div class="card col-md-3">
        <img class="center-block" src="@Html.DisplayFor(modelItem => item.Photo)" height="300" width="230" alt=@Html.DisplayFor(modelItem => item.Name) />

        // other display tags
    </div>
}

Создать () - ЭтоВот как я получаю изображение из загрузки

    [HttpPost]
    public ActionResult Create(Pet upload, HttpPostedFileBase file)
    {
        if (ModelState.IsValid)
        {
            if (file.ContentLength > 0)
            {
                var fileName = Path.GetFileName(file.FileName);
                var guid = Guid.NewGuid().ToString();
                var path = Path.Combine(Server.MapPath("~/Uploads"), guid + fileName);
                file.SaveAs(path);
                string fl = path.Substring(path.LastIndexOf("\\"));
                string[] split = fl.Split('\\');
                string newpath = split[1];
                string imagepath = "~/Uploads/" + newpath;
                upload.Photo = imagepath;
                db.Pets.Add(upload);
                db.SaveChanges();
            }
            TempData["Success"] = "Upload successful";

            return RedirectToAction("Index");
        }
        return View();
    }

Я пробовал этот метод, но он мешал моему Create (), потому что он не мог преобразовать строку в байт (я изменил свою модель со строки Photo на byte [] Фото, чтобы попробовать именно этот способ).

public ActionResult GetImage( int id )
{
     var photo = (new ApplicationDbContext()).Pets.Find(id).Photo;

    return File( imageData, "image/jpg" );
}

это был вид для него:

<img class="center-block" src="@Url.Action("GetImage", "Pet", new { id = item.Pet_ID })" height="300" width="230" alt=@Html.DisplayFor(modelItem => item.Name) />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...