2016-07-20 19 views
0

Im Verwenden der Aktion Rendern, um einige Registerkarten in eine aufrufende Ansicht zu injizieren. Ich möchte in der Lage sein, den Titel der Ansicht zu erhalten, die die RenderAction Methode ausführt, aber in der Teilansicht kann ich nicht auf die Viewbag oder Viewdata zugreifen. Es war mein Verständnis, dass eine Teilansicht eine Kopie des elterlichen viewbag/viewdata Wörterbuchs bekommt. Ich habe versucht, ViewBag.Title und ViewData ["title"], aber nichts wird zurückgegeben. Irgendwelche Ideen?Ruft den Titel der Seite ab, die die Renderaktion aufruft

ok so habe ich herausgefunden, dass, wenn Sie ein Modell erstellen Sie dieses Modell in die Methode Aktionen machen passieren kann

public class ViewInfo{ 
    public string Title { get; set; } 
} 

rufen dann die Render Methode

@{ Html.RenderAction("RenderTabs", "Tab", new {Title = ViewBag.Title});} 

Antwort

0

Wenn Sie RenderAction verwenden, die Das von dieser Aktion verwendete Modell ist unabhängig von demjenigen, das beim Aufruf von RenderAction verwendet wird. Das gleiche gilt für ViewBag und ViewData. Wenn Ihre von RenderAction aufgerufene Aktion keine Logik enthält, können Sie sie in RenderPartial ändern, um das Modell zwischen übergeordneten und untergeordneten Aktionen zu verwenden.

+0

ah ok, das macht Sinn. Jedenfalls kann ich den Titel der Elternseite beim Aufruf von renderaction übergeben –

Verwandte Themen