【发布时间】:2016-12-12 20:09:55
【问题描述】:
我正在从数据库中加载图像并在 _Layout.cshtml 中显示该图像。
图像可以更改(登录后),每个公司可能有不同的图像,所以登录后,我进入数据库并获取该公司对应的图像(基于它的 ID)。我需要保留这个加载的图像,不需要再次访问服务器。
一切正常,我可以加载图像并在 _Layout 中显示,但在每次请求后,图像“闪烁”,因为正在重新创建 _Layout。
我已按照this 问题(步骤 1)从数据库加载图像。
我的代码是:
public ActionResult CarregarLogoEmpresa()
{
if (SecurityManager.Instance.Identity.IsAuthenticated)
{
var codigoEmpresaLogada = SecurityManager.Instance.Session.IdEmpresa;
var logoEmpresa = _empresaAppService.BuscarLogoEmpresa(codigoEmpresaLogada);
//return Json(Convert.ToBase64String(logoEmpresa), JsonRequestBehavior.AllowGet);
return File(logoEmpresa, "image/jpg");
}
return null;
}
在视图中:
<img src='@Url.Action("CarregarLogoEmpresa", "Image")' />
有没有办法让图像保持加载而不是重新创建,避免每次都闪烁?
【问题讨论】:
-
你能把你的代码贴出来吗?
-
@antoinedelia 准备好了!
-
将图像放在数据库之外可能会允许浏览器缓存不“重新加载”它。或者看看 MVC 的 partialviews,这样就不必每次请求都重新加载布局。
-
@Mackan,我在这里做了一些测试,我可以在 Action 中使用 [OutputCache] 对其进行排序。由于图像必须加载一次(并且不会修改)
标签: c# asp.net-mvc