Asp.net mvc 3 从Asp.net-mvc3中的数据库在表中显示图像

Asp.net mvc 3 从Asp.net-mvc3中的数据库在表中显示图像,asp.net-mvc-3,image,Asp.net Mvc 3,Image,我有一个包含用户信息和图像字段的表,并将图像存储在二进制数据中 我想在我的视图页面上的一个包含用户信息的表格中显示此图像 我的代码是。。 控制器 public ActionResult About() { var data = db.dbtable.ToList(); return View(data); } Get Image方法//reg是dbtable的对象 public FileContentResult GetImage(int id) {

我有一个包含用户信息和图像字段的表,并将图像存储在二进制数据中

我想在我的视图页面上的一个包含用户信息的表格中显示此图像

我的代码是。。 控制器

public ActionResult About()
        {
var data = db.dbtable.ToList();
return View(data);
}
Get Image方法//reg是dbtable的对象

public FileContentResult GetImage(int id)
        {            
            reg = db.dbtable.FirstOrDefault(i => i.RegNo == id);            
            if (reg != null)
            {
                return File(reg.Photo, "image/jpeg");
            }
            else
            {
                return null;
            }
        }
在查看页面上

@model IEnumerable<MvcMySchool.dbtable>

<table width="50">
    <tr>
        <th> 
            Registration No.
        </th>
        <th>
            First Name
        </th>
        <th>
            Last Name
        </th>
        <th>
            City
        </th>
        <th>
            Photo
        </th>
    </tr>
    @foreach (var item in Model)
    {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.RegNo)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.FirstName)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.LastName)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.City)
            </td>
            <td>
            @*HttpContext.Current.Response.Write("<img width="75" height="75" src=@(Url.Action("GetImage", "Home", new { id = item.RegNo })) />")*@
                <img width="75" height="75" src=@(Url.Action("GetImage", "Home", new { id = item.RegNo })) />
            </td>
        </tr>
    }
</table>
@model IEnumerable
注册号。
名字
姓
城市
照片
@foreach(模型中的var项目)
{
@DisplayFor(modeleItem=>item.RegNo)
@DisplayFor(modelItem=>item.FirstName)
@DisplayFor(modelItem=>item.LastName)
@DisplayFor(modeleItem=>item.City)
@*HttpContext.Current.Response.Write(“”)*@
}
它只显示第一行中的图像,之后什么也不显示


谢谢。

仅将路径保留在图像中可能更有意义

如果你是一个团队

public FileStreamResult GetImage(int id)
{

reg = db.dbtable.FirstOrDefault(i => i.RegNo == id);            
            if (reg != null)
            {

    MemoryStream ms = new MemoryStream(reg.Photo);
    return File(ms, "image/png");

            }
            else
            {
                return null;
            }
}
更符合逻辑的方式保持,ony-way

public FileResult GetImage(int id)
{
reg = db.dbtable.FirstOrDefault(i => i.RegNo == id);            
                if (reg != null)
                {
    FileInfo fi = new FileInfo(Server.MapPath(reg.Photo));
    return File(fi.OpenRead, "image/png");
                }
}
两者皆有

<tr>
    <td>
       <img src="/Home/GetImage/@item.RegNo" alt="" />
    </td>
</tr>


感谢回复i first logic,它在表的第一行仅显示一个图像。我想要数据库中的所有图像,并显示每个表行中的每个图像..好的
@foreach(模型中的var项){}
如果您在渲染后使用
@foreach(模型中的var项){}
页面,则
我在数据库的内容文件夹中没有图像,图像存储为二进制数据(以字节为单位),请使用第一个代码示例操作并使用查看
查看图像、浏览器url