12

这与我问过的另一个问题有些相关,但我想为什么不单独问。

如果我要在视图中放置以下内容

<td><img src='<%= Url.Action( "DisplayImage" , "User" , new { id = item.id} ) %>' alt="" /></td>

它应该显示这个吗?

<td>
   <img src='/User.mvc/DisplayImage?id=U00915441' alt="" />
</td>

或者 src-attribute 的值实际上会被 UserController GetImage Action 的结果替换吗?

4

1 回答 1

9

它将构造动作的路径,返回一个 url,而不是执行动作的结果。

结果将是:

<td>
   <img src='/User.mvc/DisplayImage?id=U00915441' alt="" />
</td>

示例代码。假设您的用户模型将图像存储在字节数组中。如果您使用的是 LINQ 并且属性是Binary,则使用ToArray()方法将其转换为字节数组。请注意需要用户登录并使用 GET 请求的属性。

[Authorize]
[AcceptVerbs( HttpVerbs.Get )]
public ActionResult DisplayImage( string id )
{
     var user = ...get user from database...

     return File( user.Image, "image/jpeg" );
}

}

于 2009-11-18T21:34:23.583 回答