我正在尝试在_Layout.cshtml中显示用户的个人资料图像,但不确定是否应在ViewBag / ViewData中的每个请求中设置文件路径,或者创建一个返回文件路径的操作方法。这两种方法之间是否有任何性能考虑因素?
好吧,如果您在ViewBag / ViewData中设置数据,则会在生成页面时处理此数据。如果您创建一个专用的操作方法,那意味着只需向Web服务器发出一个额外的请求。由于路径很短且关联数据很小,因此调用额外的控制器方法应该稍慢。
你可以试试这个
public class GlobalViewBagFilter : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
filterContext.Controller.ViewBag.UserImage = "Your Image Path";
}
}
将它添加到App_start文件夹上的FilterConfig中
public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new GlobalViewBagFilter ());
}
}
现在,您可以在应用程序中获取ViewBag.UserImage _Layout。