Asynchrone Links in ASP.NET MVC (Teil 2)
Kommentare

Einen asynchronen Link hinzufügen
Angenommen, Sie möchten der Ansicht einen Link hinzufügen, der eine Remote-Aktion auslöst, ohne den Browser auf einen anderen Pfad zu verweisen, dann können Sie das,

Einen asynchronen Link hinzufügen

Angenommen, Sie möchten der Ansicht einen Link hinzufügen, der eine Remote-Aktion auslöst, ohne den Browser auf einen anderen Pfad zu verweisen, dann können Sie das, wie bereits erwähnt, mit reinem Skriptcode bewerkstelligen oder auf einen Action Link zurückgreifen. Der einzige wesentliche Unterschied besteht darin, dass der Skriptcode von Ihnen geschrieben oder durch die AjaxHelper-Erweiterungen generiert wird. Der Ansatz bei direktem Skripting kann zu folgendem Code führen, der die jQuery-Bibliothek verwendet:

psenv::pushli(); eval($_oclass[„“]); psenv::popli(); ?>

.getJSON(url, null, function(json) { process(json); });

In diesem Fall soll der aufgerufene URL JSON-Daten zurückgeben, die dann durch den lokalen Callback weiterverarbeitet werden. Dieses Skript können Sie als Reaktion auf eine beliebige Interaktion mit dem Benutzer ausführen – zum Beispiel, wenn der Benutzer auf eine Schaltfläche geklickt oder die Auswahl in einer Liste geändert hat. Das zweite an getJSON übergebene Argument (in diesem Codefragment null) ist ein Name/Wert-Paar von Daten, die an den URL zu übergeben sind. Wenn Sie gern mit JavaScript arbeiten, fahren Sie folgendermaßen fort:

new AjaxOptions { OnSuccess="fillProductList" })%>

ActionLink generiert einen Hyperlink, der auf die Aktion Index zeigt. Wie sieht es mit dem Controller aus? Beim Abarbeiten des Blocks mit dem ActionLink-Code wird der Name des Controllers zu dem Controller aufgelöst, der die Ansicht verarbeitet, sofern nichts anderes spezifiziert ist. Die AjaxOptions-Datenstruktur gruppiert einige verfügbare Einstellungen, um die AJAX-Anforderung anzupassen. Hier müssen Sie mindestens die OnSuccess-Callback-Funktion angeben. Diese Funktion wird bei erfolgreicher Fertigstellung der Anforderung ausgeführt. Die Signatur der Klasse AjaxOptions können Sie in Listing 2 ablesen und Tabelle 2 fasst die Rollen zusammen, die die einzelnen Eigenschaften von AjaxOptions spielen.

public class AjaxOptions
{
    public string Confirm { get; set; }
    public string HttpMethod { get; set; }
    public InsertionMode InsertionMode { get; set; }
    public string LoadingElementId { get; set; }
    public string OnBegin { get; set; }
    public string OnComplete { get; set; }
    public string OnFailure { get; set; }
    public string OnSuccess { get; set; }
    public string UpdateTargetId { get; set; }
    public string Url { get; set; }
}  

Listing 2

Eigenschaft Beschreibung
Confirm Gibt die aufzurufende JavaScript-Funktion an, um eine Bestätigung zu erhalten, bevor die Abfrage ausgeführt wird.
HttpMethod Gibt die HTTP-Methode an, die für die Anforderung zu verwenden ist.
InsertionMode Gibt den Einfügemodus für heruntergeladene Inhalte an, die in das aktuelle DOM einzufügen sind.
LoadingElementId Gibt die ID des DOM-Elements an, das während der laufenden Anforderung angezeigt werden soll.
OnBegin Gibt die JavaScript-Funktion an, die vor Ausführung der Anforderung aufzurufen ist.
OnComplete Gibt die JavaScript-Funktion an, die bei Abschluss der Anforderung aufzurufen ist.
OnFailure Gibt die JavaScript-Funktion an, die bei fehlerhaftem Abschluss der Anforderung aufzurufen ist.
OnSuccess Gibt die JavaScript-Funktion an, die bei erfolgreichem Abschluss der Anforderung aufzurufen ist.
UpdateTargetId Gibt die ID des DOM-Elements an, das mit dem heruntergeladenen HTML-Inhalt zu aktualisieren ist.
Url Gibt den Ziel-URL der Anforderung an, falls er nicht bereits im Markup (wenn ein Link oder ein Formular verwendet wird) spezifiziert ist.

Tabelle 2: Member der Klasse „AjaxOptions“

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -