Url.Action如何运作Asp.net MVC?

zSy*_*sis 11 asp.net asp.net-mvc helper url.action

这与我提出的另一个问题有些相关,但我想为什么不单独问它.

如果我在视图中放置类似下面的内容

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

它应该显示这个吗?

<td>
   <img src='/User.mvc/DisplayImage?id=U00915441' alt="" />
</td>
Run Code Online (Sandbox Code Playgroud)

或者,src属性的值实际上是否会被UserController GetImage Action的结果替换?

tva*_*son 9

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

结果将是:

<td>
   <img src='/User.mvc/DisplayImage?id=U00915441' alt="" />
</td>
Run Code Online (Sandbox Code Playgroud)

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

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

     return File( user.Image, "image/jpeg" );
}
Run Code Online (Sandbox Code Playgroud)

}