Asp.net mvc 4 如何从视图中的模型渲染(图像)数据?

Asp.net mvc 4 如何从视图中的模型渲染(图像)数据?,asp.net-mvc-4,razor,Asp.net Mvc 4,Razor,这是我的控制器动作 public ActionResult ViewImage(int? productId){ var image = (from x in db.Images where (x.ProductId == productId) select x).ToList(); return View(image);

这是我的控制器动作

public ActionResult ViewImage(int? productId){

           var image = (from x in db.Images
                             where (x.ProductId == productId)
                             select x).ToList();
            return View(image);
       }
这就是我的观点

@model
@{
    ViewBag.Title = "ViewImage";
}

<h2>Uploaded pictures</h2>
<div>
<br>
        <img height="300" width="350 " src="@Model" />
</div>
<div>
    <br>
    @Html.ActionLink("Back to Index","Index","Products")
</div>
@模型
@{
ViewBag.Title=“ViewImage”;
}
上传图片


@ActionLink(“返回索引”、“索引”、“产品”)

我不知道我要在@model后面放什么。我试图把图像类型,但没有工作

您需要发送模型类型

@model List<Images>
@型号列表
将以下属性添加到模型类并向其添加图像。
公共IEnumerable附件{get;set;}

尝试使用ViewBag.Image而不是var Image:

public ActionResult ViewImage(int? productId){
           Viewbag.Image image = (from x in db.Images
                       where (x.ProductId == productId)
                       select x).ToList();
            return View(image);
}
现在在你看来:

@{
    ViewBag.Title = "ViewImage";
}

<h2>Uploaded pictures</h2>
<div>
<br>

@foreach(var image in Viewbag.Image)
{
        <img height="300" width="350 " src="@image" />
}
</div>
<div>
    <br>
    @Html.ActionLink("Back to Index","Index","Products")
</div>
@model IList<WebApplication1.Image>

<h2>Uploaded pictures</h2>
<div>
    @foreach(var image in Model)
    {
        <img height="300" width="350 " src="@Url.Action("Image", "SomeController", new { imageId = image.Id })" />
    }
</div>
@{
ViewBag.Title=“ViewImage”;
}
上传图片

@foreach(Viewbag.image中的var图像) { }
@ActionLink(“返回索引”、“索引”、“产品”)

希望这有帮助

您应该有一个控制器操作,将图像流传输到响应:

public ActionResult Image(int imageId)
{
    var image = db.Images.SingleOrDefault(x => x.Id == imageId);
    if (image == null)
    {
        return HttpNotFound();
    }

    byte[] imageData = image.Data; // or whatever byte[] property you have
    string contentType = "image/jpg"; // or if you have stored the content type in your DB simply assign it to image.ContentType
    return File(imageData, contentType);
}
好的,有了这个方便的方法,您可以更新视图:

@{
    ViewBag.Title = "ViewImage";
}

<h2>Uploaded pictures</h2>
<div>
<br>

@foreach(var image in Viewbag.Image)
{
        <img height="300" width="350 " src="@image" />
}
</div>
<div>
    <br>
    @Html.ActionLink("Back to Index","Index","Products")
</div>
@model IList<WebApplication1.Image>

<h2>Uploaded pictures</h2>
<div>
    @foreach(var image in Model)
    {
        <img height="300" width="350 " src="@Url.Action("Image", "SomeController", new { imageId = image.Id })" />
    }
</div>
@model-IList
上传图片
@foreach(模型中的var图像)
{
}

请注意图像的
src
属性如何指向我们之前实现的控制器操作,它将获取图像并将其流式传输到响应。

将图像视为错误!我得到一个错误:找不到类型或名称空间名称“Images”(是否缺少using指令或程序集引用?),只需添加名称空间<代码>@型号列表