2010-09-20 9 views
6

Ich möchte zwei Teilansichten, eine für SEARCH und eine für SEARCHRESULTS haben.Aktualisierung einer Teilansicht von einer anderen Teilansicht - ASP.NET MVC2

Ich möchte SEARCHRESULTS aktualisieren, wenn die Schaltfläche "Suchen" auf das Teilansichtsformular SEARCH geklickt wird. SEARCHRESULTS muss die Formulardaten von der SEARCH Teilansicht zu ihm zugeführt haben.

Ich bin mir nicht ganz sicher, wie das geht. Kann ich die Teilansicht SEARCHRESULTS von meiner SEARCH Teilansicht Controller-Aktion aktualisieren?

Antwort

8

Allgemeine Diskussion
In den MVC-Entwurfsmuster Ansichten sind sich nicht bewusst voneinander. Sie können durch das Konzept einer Ansicht verbunden sein, die mehrere Teilansichten zusammenfügt, aber selbst dann sind die Teiltöne nicht voneinander abhängig. Dieses Konzept gilt für ASP.NET MVC. Mike Brind macht einen guten Job und beschreibt Partials und ViewData in seinem Beitrag ASP.NET MVC Partial Views and Strongly Typed Custom ViewModels.

speziell auf Ihre Frage
Um Ihre Frage eine Teilansicht beantworten kann einen Link zu einer Controller-Aktion, die eine andere Sicht macht, solange die entsprechende Information an die Steuerung übergeben wird. Wie Sie dabei vorgehen, hängt davon ab, was Sie zu tun versuchen.

Bei Ihrer Frage gehe ich davon aus, dass die SEARCH Teilansicht ein einfaches Formular mit Suchfeld und Schaltfläche ist. Während SEARCHRESULTS ist eine Auflistung der zurückgegebenen Daten. In diesem Fall würden Sie eine Controller-Aktion namens Search erstellen, die einen String-Wert übernimmt und nur die SEARCHRESULTS partielle oder eine Ansicht zurückgibt, die SEARCHRESULTS enthält. Scott Guthrie liefert eine ziemlich gute Beschreibung der Weitergabe von Daten an eine Ansicht in seinem Blogpost Passing ViewData from Controllers to Views.

// returning partial 
public ActionResult Search(string q) 
{ 
    //do search ....... 
    //................. 

    return PartialView("SEARCHREULTS", viewdata); 
}