C # / Asp.NET: Есть ли преимущество установки данных в ViewData / ViewBag каждый запрос по сравнению с вызовом метода действия для получения данных? - PullRequest
0 голосов
/ 16 января 2019

Я пытаюсь отобразить изображение профиля пользователя в своем _Layout.cshtml, но не уверен, должен ли я устанавливать путь к файлу при каждом запросе в ViewBag / ViewData или создавать метод действия, который возвращает путь к файлу.Есть ли какие-то соображения по поводу производительности между двумя подходами?

Ответы [ 2 ]

0 голосов
/ 16 января 2019

Вы можете попробовать это

public class GlobalViewBagFilter : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
       filterContext.Controller.ViewBag.UserImage = "Your Image Path";
    }
}

Добавить его в FilterConfig в папке App_start

 public class FilterConfig
 {
    public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    {
       filters.Add(new GlobalViewBagFilter ());
    }
  }

Теперь вы можете получить ViewBag.UserImage _Layout в вашем приложении.

0 голосов
/ 16 января 2019

Хорошо, если вы установите данные в ViewBag / ViewData, эти данные будут обрабатываться во время генерации вашей страницы. Если вы создадите специальный метод действия, это будет означать всего один дополнительный запрос к веб-серверу. Поскольку путь короткий и связанные данные крошечные, вызов метода дополнительного контроллера должен быть немного медленнее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...