C#/ Asp.NET:在ViewData / ViewBag中设置数据是否有利于每个请求与调用操作方法获取数据?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#/ Asp.NET:在ViewData / ViewBag中设置数据是否有利于每个请求与调用操作方法获取数据?相关的知识,希望对你有一定的参考价值。
我正在尝试在_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。
以上是关于C#/ Asp.NET:在ViewData / ViewBag中设置数据是否有利于每个请求与调用操作方法获取数据?的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET-viewBag Viewdata Tempdata
ASP.NET MVC - 在基本控制器中为母版页设置 ViewData
是否可以在 ASP.NET MVC 的脚本块中引用 ViewData?