Hier habe ich eine Teilansicht in MVC 5Dynamische Daten von ViewBag auf Teilansicht gerendert auf _Layout
@modelType HOA5.MainMenuModel
<div class="navbar navbar-inverse navbar-fixed-top" id="mainNavbar">
<div class="container">
@Html.Raw(ViewBag.htmlstr)
</div>
</div>
... und die Steuerung kehrt einige dynamische Inhalte ViewBag
Function Index() As ActionResult
Dim vModal As New MainMenuModel
vModal.MenuHTML = SB.ToString
Dim MenuHTML As String = ReturnMenu()
ViewBag.htmlstr = MenuHTML
Return View("MainMenuView")
End Function
.. und dann nur diese Ansicht ausführen
http://localhost:52735/mainMenu/
Es funktioniert perfekt und fügt den dynamischen Inhalt ein. Allerdings, wenn ich die Teilansicht in dem _Layout
@Html.Partial("~/Views/MainMenu/MainMenuView.vbhtml")
und führen Sie es
http://localhost:52735
Dann wird die statischen Inhalte angezeigt wird, aber nicht der dynamische Inhalt .. Habe auch versucht, Varianten von @RenderAction, @RenderPartial aber entweder stimmt das nicht, oder ich habe die Syntax durcheinander gebracht!
Alle Zeiger würde geschätzt als Kopf zu oft heute eingeführt wurde :-) Sie
Vielen
versuchen @ Html.Partial ("MainMenuView") oder die Ansicht/Shared bewegen und versuchen, es – Mate
Hallo Kamerad (jetzt fühle ich mich, dass ich bin zurück in Großbritannien) - versuchte eine Anzahl von Varianten und der vollständige Pfad war das einzige, das die Ansicht ohne einen Fehler zurückgab - jedoch fand ich eine Methode ohne eine Teilansicht, die funktioniert und sie unten veröffentlichte. Vielen Dank für Ihre Antwort – gchq
'@ Html.Partial()' ruft nicht Ihre Controller-Methode auf - es gibt nur den HTML-Code wieder, der auf dem Modell basiert, das Sie übergeben (und Sie haben kein Modell übergeben!). Verwende '@ {Html.RenderAction (" Index ", controllername); } 'um die Methode aufzurufen und das HTML zurückzugeben (und die Methode sollte ein' PartialView() ', nicht' View() 'zurückgeben –