gon*_*lov 0 view filecontentresult asp.net-mvc-3
我在从数据库获取的控制器中执行相同的操作,例如具有姓名、年龄、图像(字节 [])的员工。
所以我将信息存储在 ViewBag 中。然后在查看图像的具体代码是:
<img src="@ViewBag.Image" alt="Logo" />
Run Code Online (Sandbox Code Playgroud)
但是当我看到回复的内容时,我有:
<img src="System.something.FileContentResult" alt="Logo" />
Run Code Online (Sandbox Code Playgroud)
我见过很多从控制器中的特定操作获取 FileContentResult 的示例,例如:
(代码仅为示例)
public ActionResult GetEmployeeImage (int id){
byte[] byteArray = GetImageFromDB(id);
FileContentData file = new File (byteArray,"image/jpg");
return file;
}
Run Code Online (Sandbox Code Playgroud)
然后渲染图像:
<img src="@Url.Action("GetEmployeeImage", "Home", new { id = ViewBag.Id })" alt="Em" />
Run Code Online (Sandbox Code Playgroud)
但我不想要那个,因为我已经有了图像。
如何将其渲染到视图抛出 ViewBag?
谢谢!
PD:在视图中渲染图像是相同的,但尚未结束
一种可能性是使用数据 URI 方案。请记住,这仅适用于支持它的浏览器。这个想法是你将图像数据作为 base64 字符串嵌入到标签的src属性中img:
<img src="data:image/jpg;base64,@(Html.Raw(Convert.ToBase64String((byte[])ViewBag.Image)))" alt="" />
Run Code Online (Sandbox Code Playgroud)
另一方面,如果您想要一个适用于所有浏览器的解决方案,则必须使用控制器操作来提供图像。所以在初始请求中只获取员工的 id、name 和 age 属性,而不是图像。然后编写一个控制器动作,它将以员工 ID 作为参数,查询数据库,获取相应的图像并将其作为文件结果返回。然后在视图中将 img 标签的 src 属性指向这个控制器动作。
| 归档时间: |
|
| 查看次数: |
4352 次 |
| 最近记录: |