2016-04-05 10 views
0

Wie ist es möglich, z.B. ViewBag.Title in Orten wie Base Controller, Action Filter, etc. nachdem es von der View gesetzt wurde?Abrufen von ViewBag-Werten, die in der Ansicht gesetzt sind

+1

Sie nicht 'ViewBag' nach Umleitung lesen können, Sie in Ihrem Szenario' Sessions' zu verwenden. –

+0

Danke für die Antwort. Was meinst du mit Umleitung? – codeRecap

+0

Means 'Viewbag' kann nur verwendet werden, um Daten vom Controller zu senden, um ihn zu verlieren, wenn Sie zu einer anderen Aktion oder einem Controller umleiten, auch wenn Sie ihn nicht in Aktionsfiltern verwenden können und der Basiscontroller stattdessen Sitzungen verwendet. –

Antwort

0

Der Zweck ViewBag ist, Daten von Controller senden in umgekehrter Reihenfolge zum Ansehen nicht. Viewbag bietet Zugriff auf Daten als dynamische Eigenschaften.

Auf der anderen Seite wie in Base-Controller & Aktion Filter können wir Daten von ActionExecutingContext oder ActionExecutedContext Variablen erhalten.

Wir können auch Daten in ActionFilters wie unten

public override void OnActionExecuting(ActionExecutingContext filterContext) 
    { 
     if (filterContext != null) 
     { 
      //set vlaue in context 
      filterContext.RouteData.DataTokens.Add("VariableName", "Value of variable"); 
      //Log information 
      Log("OnActionExecuting", filterContext.RouteData); 
     } 
    } 
Verwandte Themen