.
Anmeldung | Registrieren | Hilfe
in Suchen

Datenübergabe zwischen verschiedenen PartialViews

Letzter Beitrag 09. Apr 2011 15:51 von dlang. 1 Antworten.
Seite 1 von 1 (2 Treffer)
Beiträge sortieren: Zurück Weiter
  • 30. Mrz 2011 9:33

    • Martivo
    • Top 500 Mitwirkender
    • Registriert am 30. Mrz 2011
    • Beiträge 3
    • Punkte 30

    Datenübergabe zwischen verschiedenen PartialViews

    Hallo,

    ich bin ganz neu auf dem Gebiet ASP.NET MVC und habe mich mittlerweile schon durch einige Tutorials gekämpft. 

    Nun habe ich mir eine Anwendung mit folgender Struktur aufgebaut:

    HauptController
    PartialController1
    PartialController2
    PartialController2

    HauptModel
    PartialModel1
    PartialModel2
    PartialModel3

    HauptView (*.aspx)
    PartialView1 (*.ascx)
    PartialView2 (*.ascx)
    PartialView3 (*.ascx)


    Die Hauptview soll zuerst PartialView1 anzeigen, durch Klick auf einen Button in PartialView1 soll PartialView2 einen Wert aus PartialView1 übergeben bekommen und sich zusätzlich auf der Hauptview anzeigen und durch Klick auf den Button in PartialView2 soll anschließend PartialView3 mit einem Wert aus PartialView2 zusätzlich angezeigt werden.

    Die Objektstruktur, etc müsste alles stimmen. Ich habe nur ein Problem mit dem übergeben der Daten von einer PartialView in die nächste. Wie kann man das am Besten bewerkstelligen?

    Vielen Dank und beste Grüße.


    • IP-Adresse ist Registriert
  • 09. Apr 2011 15:51 Antwort zu

    • dlang
    • Top 150 Mitwirkender
      Männlich
    • Registriert am 03. Apr 2011
    • Linz
    • Beiträge 11
    • Punkte 175

    Datenübergabe zwischen verschiedenen PartialViews

    Hallo Martivo,

    Es ist wichtig, dass du verstehst, dass alle PartialViews letztendlich keine für sich eigenständigen Views sind, sondern zu einem gesamten View bei jedem Rountrip gerendert werden werden. Das was du beschreibst, klingt stark nach einer Art Assistent oder Checkout-Prozess bei einem Webshop.

    Du hast mehrere Möglichkeiten sowas zu machen:
    • Postback
      Bei Klicken des Buttons in deinem PartialView1 werden die Parameter an die entsprechende Action deines Controllers mitgegeben. Dieser erzeugt dann ein ViewModel, dass er dem "Haupt-View" mitgibt, wo irgendein Wert drinnen ist (z.B. "CheckoutStep" als Integer) und dann im Hauptview selber verwendet wird um zu entscheiden, welcher der PartialView dargestellt werden soll.
    • AJAX
      Wesentlich eleganter wäre eine Lösung über AJAX. Du kannst hier entweder das Microsoft AjaxFramework oder besser (weil meistens einfacher) jQuery verwenden, um beim Button-Klick via HTTP-Post/Get eine Controller-Action aufzurufen, der dir einzig die gerenderte PartialView2 zurückgibt. Das so erhaltene HTML kannst du dann mit jQuery ganz einfach in deinen Container des Hauptviews einsetzen. Wenn du dabei dann noch einen netten jQuery-Effekt hinzufügst (z.B. weich einblenden) dann wird das deinem User sicher besser gefallen, als wenn er beim Klick die ganze Seite neu geladen bekommt.
    Sollte ich damit deine Frage nicht beantwortet haben, poste doch bitte ein bisschen Code und eine genauere Erklärung.

    Schöne Grüße,
    Daniel Lang
    Interessiert an: ASP.NET MVC, WPF, WCF - natürlich nur mit C#

    Webseite: flexbit - Softwareentwicklung
    Blog: .NET - Blog
    • IP-Adresse ist Registriert
Seite 1 von 1 (2 Treffer)

WPF Forum | ASP.NET Forum | ASP.NET MVC Forum | Silverlight Forum | Windows Phone 7 Forum | SharePoint Forum | Dotnet Jobs | Dotnet Termine | Developer Blogs | Dotnet News

Das Team | Regeln | Impressum