2015-12-11 2 views
1

Я создаю приложение для загрузки изображений в базу данных и показывая их в галерее. Я хотел бы, чтобы изображение привязывалось к странице. Я просто не знаю, как я могу назвать URL-адрес модели в представлении. Или мне нужно сделать специальную функцию контроллера здесь?Как сохранить URL-адрес изображения в базе данных и использовать его в ASP.NET MVC?

My Database

ImageGallary.cs

public partial class ImageGallery 
{ 
    public int ImageID { get; set; } 
    public int ImageSize { get; set; } 
    public string FileName { get; set; } 

    public string ImageURL { get; set; } 

    public byte[] ImageData { get; set; } 
    [Required(ErrorMessage="Please select an image file")] 
    public HttpPostedFileBase File { get; set; } 
} 

Gallery.cshtml

@model List <JensGoesASP.ImageGallery> 

@{ 
    ViewBag.Title = "Gallery"; 
} 

<h2>Films</h2> 

@* Hier komen de geuploade images *@ 
<table class="table"> 
    @{ 
     int j = 0; 
     for (int i = 0; i < Model.Count(); i += 4) 
     { 
      j = i; 
      @* Dit laat 4 images per rij zien *@ 
      <tr> 
       @while (j < i + 2 && j < Model.Count()) 
       { 
        <td> 
         <img src="data:image/png;base64,@Convert.ToBase64String(Model[j].ImageData,0,Model[j].ImageData.Length)" style="padding-top:30px;" /> 
         <a href="THE URL">Button</a> @*Here i want to get the url from the database*@ 
       </td> 
        j++; 
       } 

       </tr> 
     } 
    } 

</table> 

Greetz

+0

Несколько предложений: (1) не используйте таблицу для размещения вашей галереи, она имеет значительные ограничения. (2) не вставляйте свои данные изображения на страницу, а создавайте действие контроллера, которое отвечает на запрос http с данными изображения и устанавливает src для вызова действия с соответствующим идентификатором. (3) вы уже показали, как написать свойство «ImageData» на странице; используйте тот же подход для записи свойства 'ImageUrl' для атрибута' href'. –

ответ

1

Просто добавьте этот код в page.If вашей картины были сохранены ранее, он показывает ваши фото.

@foreach (var item in Model) 
       { 
       <div> 
        <img src="@Html.DisplayFor(modelItem => item.ImageURL)" /> 
       </div> 
       } 
1

Большинство приложений не сохраняет изображение в базе данных. Это добавляет целый уровень сложности, без каких-либо очевидных преимуществ. Это сделает ваш столбец ImageData устаревшим в вашем примере.

Скорее загрузите изображения в конкретный каталог на своем сервере, используя FTP или по другому методу.

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

И тогда вы будете ссылаться на изображения с чем-то вроде @Ali.

<img src="@Html.DisplayFor(modelItem => item.ImageURL)" /> 
Смежные вопросы