0

Kann ich eine Webseite mit einer Teilansicht erstellen, die eine andere Teilansicht enthält? Ich habe es schon versucht, aber es endet die ganze Zeit in einer Endlosschleife. Also nur die Frage ist das möglich?Kann eine Teilansicht in einer Teilansicht geladen werden?

Ich füge ein Bild hinzu, um Ihnen zu zeigen, was ich machen möchte. enter image description here Dank

Edit: i die Teilansicht wie folgt laden: parent:

<div id="ProfilPartial"> 
    @Html.Action("ProfilPartial", new { module = "1" }) 
</div> 

Teilansicht:

<div id="ProfilPartialSelbst"> 
    @Html.Action("ProfilPartialSelbst", new { module = "1" }) 
</div> 

Er geht in beide Controller ruft

EDIT2 : Hier sind die Contro ller nennt

[Authorize] 
public PartialViewResult ProfilPartial(string module, int start = 0, int anzahl = 100) 
{ 
    int benutzerId = Int32.Parse(User.Identity.GetUserId()); 
    ViewBag.module = module; 
    Benutzer user = Benutzer.AllList().Where(x => x.Id == benutzerId).First(); 
    if (module == "1") // Persönliche Daten 
    { 
     return PartialView("ProfilPersönlicheDaten", user); 
    } 
    else if (module == "2") // Unterschrift 
    { 
     return PartialView("ProfilUnterschrift", user); 
    } 
    else if (module == "3") // Rechnungs-Einstellungen 
    { 
     return PartialView("ProfileRechnungsEinstellungen", user); 
    } 

    else if (module == "4") // Angebote 
    { 
     return PartialView("ProfileAngebote", user); 
    } 

    else if (module == "5") // Leasing-Personaldaten 
    { 
     return PartialView("ProfilLeasingPersonalDaten", user); 
    } 

    else if (module == "6") // Status Selbstständigkeit 
    { 
     return PartialView("ProfilStatusSelbstständigkeit", user); 
    } 

    else if (module == "7") // Dokumente 
    { 
     return PartialView("ProfilDokumente", user); 
    } 

    else if (module == "8") // Passwort 
    { 
     return PartialView("ProfilPasswort", user); 
    } 
    return PartialView("RechnungMonatsUebersicht", user); 
} 


public PartialViewResult ProfilPartialSelbst(string module, int start = 0, int anzahl = 100) 
{ 
    int benutzerId = Int32.Parse(User.Identity.GetUserId()); 
    ViewBag.module = module; 
    Benutzer user = Benutzer.AllList().Where(x => x.Id == benutzerId).First(); 
    if (module == "1") // Persönliche Daten 
    { 
     return PartialView("ProfilSelbstständigkeitWie", user); 
    } 
    else if (module == "2") // Unterschrift 
    { 
     return PartialView("ProfilSelbstständigkeitSchutz", user); 
    } 
    else if (module == "3") // Rechnungs-Einstellungen 
    { 
     return PartialView("ProfilSelbstständigkeitInfos", user); 
    } 
    return PartialView("RechnungMonatsUebersicht", user); 
} 
+1

Wie versuchen Sie, die Teilansicht – Alex

+0

zu meiner Frage – TheRealLife

+2

I t geladen zu laden Ich weiß, was passiert - Bitte können Sie auch Ihre 'ProfilPartial' und' ProfilPartialSelbst' Controller Methoden zeigen – Alex

Antwort

1

hinzufügen

@{ Layout = null; } 

auf Ihre Teilansicht.

Das Problem ist, dass das Rendern der Teilansicht Ihre Ansicht mit das Layout aufruft.
Was wiederum die Teilansicht rendert. Was das Layout rendert. Welche ist ... Sie auf die Idee, damit die Schleife (Stapelüberlaufausnahme

Eine weitere Option hinzuzufügen wäre

[ChildActionOnly] 

auf Ihre Controller-Methoden

[ChildActionOnly] 
public PartialViewResult ProfilPartial 

und

[ChildActionOnly] 
public PartialViewResult ProfilPartialSelbst 
+1

Vielen Dank :-) – TheRealLife