0

我想在 MVCContrib gridview 的列中显示图像(物理上位于服务器的 Image 文件夹中,并且它们的路径存储在 db 中)。我正在使用以下代码,但它只返回图像路径,但我想在网格列中显示图像。

代码

     <%=Html.Grid(Model.ImageGridView).Columns(columns=>{
     columns.For(x=>x.ImageID);
     columns.For(x=>x.ImageTitle);
     columns.For(x=>x.ImagePath);

 })%>
4

1 回答 1

0

您可以定义一个部分 ( _Image.ascx) 将被强类型为字符串并包含图像:

<%@ Control 
    Language="C#" 
    Inherits="System.Web.Mvc.ViewUserControl<string>" 
%>
<img src="<%= Model %>" alt="" />

进而:

<%= Html
    .Grid(Model.ImageGridView)
    .Columns(columns => {
        columns.For(x => x.ImageID);
        columns.For(x => x.ImageTitle);
        columns.For(x => Html.Partial("_Image", x.ImagePath));
    }
) %>

显然,如果ImagePath属性指向服务器上图像的物理位置,则不能直接将其传递给<img>标签。您需要将其转换为相对 url。理想情况下,这应该在将模型传递给视图之前在服务器上完成。

于 2013-01-26T18:42:46.720 回答