我想在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);
})%>
答案 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。理想情况下,应在将模型传递给视图之前在服务器上完成此操作。