如何在视图页面上显示来自sql server db的图像
问题描述:
**Controler--
public ActionResult DisplayImage(Users stu)
{
List<Users> studs = new List<Users>();
studs = stu.GetImagesFromDB(stu);
return View(studs);
}
Model-
namespace MVC3Test.Models
{
public class Users
{
[Required]
public HttpPostedFileBase file { get; set; }
public int lm_id { get; set; }
public byte[] file_data { get; set; }
public string Countryid { get; set; }
public string CountryName { get; set; }
public List<SelectListItem> CountryList { get; set; }
public int UserID { get; set; }
[Required]
[Display(Name="First name")]
public string FirstName { get; set; }
[Required]
[Display(Name = "Last name")]
public string LastName { get; set; }
[Required]
[Display(Name = "Address")]
public string Address { get; set; }
[Required]
[Display(Name = "Select Gender")]
public int gender { get; set; }
[Required]
[Display(Name = "Email")]
[StringLength(250)]
[RegularExpression(@"([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})", ErrorMessage = "Not a valid e-mail address")]
public string Email { get; set; }
public List<Users> GetImagesFromDB(Users stud)
{
string pstrrc = "sp_getAllImages";
List<Users> AllImages = new List<Users>();
List<SqlParameter> arrparam = new List<SqlParameter>();
SqlParameter param1 = new SqlParameter("@lm_id", SqlDbType.Int);
param1.Value = stud.lm_id;
arrparam.Add(param1);
DataTable dt = Users.SelectStoreProcedure(pstrrc, arrparam);
foreach (DataRow row in dt.Rows)
{
Users images = new Users();
images.lm_id = Convert.ToInt32(row["lm_id"]);
images.file_data = (byte[])(row["file_data"]);
AllImages.Add(images);
}
return AllImages;
}
}
}
view-
@model IEnumerable<MVC3Test.Models.Users>
@{
ViewBag.Title = "DisplayImage";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<!DOCTYPE html>
<html>
<head>
<title>DisplayImage</title>
</head>
<body>
<table>
<tr>
<th>
lm_id
</th>
<th></th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
<img src="@Url.Action("DislpayImage", "Home",new { id =item.lm_id }))" alt="myimage" />
</td>
</tr>
}
</table>
</body>
</html>
答
参考:
http://www.nullskull.com/a/ 10450951 / aspnet-mvc-display-images-from-viewmodel-into-your-views.aspx [ ^ ]
http://ricardodsanchez.com/2012/04/ 03 /从-dabatase-in-asp-net-mvc / 中检索图像[ ^ ]
http://www.sullivansoftdev.com/blog/2012/ 11/09 / displays-database-stored-images-in-asp-net-mvc-with-data-urls / [ ^ ]
这可能会有所帮助。
Refer:
http://www.nullskull.com/a/10450951/aspnet-mvc-display-images-directly-from-the-viewmodel-into-your-views.aspx[^]
http://ricardodsanchez.com/2012/04/03/retrieving-images-from-a-dabatase-in-asp-net-mvc/[^]
http://www.sullivansoftdev.com/blog/2012/11/09/displaying-database-stored-images-in-asp-net-mvc-with-data-urls/[^]
This may help.