猿问

每次请求都在 ViewData/ViewBag 中设置数据与调用操作方法来获取数据相比有优势吗?

我正在尝试在我的 _Layout.cshtml 中显示用户的个人资料图片,但不确定是否应该在 ViewBag/ViewData 中设置每个请求的文件路径,或者创建一个返回文件路径的操作方法。两种方法之间是否有任何性能考虑?



元芳怎么了
浏览 117回答 2
2回答

largeQ

好吧,如果您在 ViewBag / ViewData 中设置数据,则在生成页面时会处理此数据。如果您创建一个专用的操作方法,那将意味着只向网络服务器发出一个额外的请求。由于路径很短且关联的数据很小,因此调用额外的控制器方法应该会稍微慢一些。

慕运维8079593

你可以试试这个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。
随时随地看视频慕课网APP
我要回答