我正在创建一个将图像上传到数据库并在图库中显示的应用程序。我想将图像链接到页面。 我根本不知道如何在视图中调用模型中的url。 或者我应该在这里制作一个特殊的控制器功能?
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>
格尔茨
答案 0 :(得分:0)
只需在您的页面中添加此代码。如果之前已存储过您的照片,则会显示您的照片。
@foreach (var item in Model)
{
<div>
<img src="@Html.DisplayFor(modelItem => item.ImageURL)" />
</div>
}
答案 1 :(得分:0)
大多数应用程序不会将图像本身存储在数据库中。它增加了整个复杂程度,没有任何明显的优势。这会使您的ImageData
列在您的示例中过时。
而是通过FTP或其他方法将图像上传到服务器上的特定目录。
在您的数据库中,您只需存储文件名,路径和文件名,具体取决于您的设置。
然后你会用@Ali发布的东西来引用这些图像。
<img src="@Html.DisplayFor(modelItem => item.ImageURL)" />