使用MVCContrib在gridview列中显示图像

时间:2013-01-26 18:14:08

标签: asp.net-mvc

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

CODE

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

 })%>

1 个答案:

答案 0 :(得分: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。理想情况下,应在将模型传递给视图之前在服务器上完成此操作。