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

Das Markup untersuchen
Um die ActionLink-HTML-Hilfsfunktion erfolgreich einzusetzen, müssen Sie von Ihrer Anwendung aus sowohl auf microsoftajax.js als auch auf microsoftmvcajax.js verweisen. Beide Dateien

Das Markup untersuchen

Um die ActionLink-HTML-Hilfsfunktion erfolgreich einzusetzen, müssen Sie von Ihrer Anwendung aus sowohl auf microsoftajax.js als auch auf microsoftmvcajax.js verweisen. Beide Dateien können Sie von Ihrer Website oder vom Microsoft Content Delivery Network (CDN) verlinken. Der in Listing 3 angegebene Code zeigt, wie Sie ASP.NET-MVC-Skriptdateien vom Microsoft CDN verlinken. Hier sind Dateien zu sehen, die auf ASP.NET MVC 1.0 verweisen, da Dateien für die Version 2 von ASP.NET MVC noch nicht verfügbar sind.


  

Listing 3

Die ActionLink-HTML-Hilfsfunktion gibt den JavaScript-Code wie in Listing 4 zu sehen für den Aufruf in Listing 3 aus.


   onclick="Sys.Mvc.AsyncHyperlink.handleClick(
this,
new Sys.UI.DomEvent(event),
{
insertionMode: Sys.Mvc.InsertionMode.replace,
onSuccess: Function.createDelegate(this,
fillProductList)
});">
Show catalog

Listing 4

Die für die Verarbeitung der Anforderung verwendete Callback-Funktion hat die folgende Form:

function fillProductList(context) { var data = eval(context.get_data()); : };

Der Parameter context ist ein JavaScript-Objekt vom Typ AjaxContext (Tabelle 3).

Eigenschaft Beschreibung
data Gibt die zurückgegebene Antwort an.
insertionMode Gibt den Einfügemodus für die Antwort an.
loadingElement Gibt das DOM-Element an, das während der laufenden Anforderung Feedback anzeigt.
request Gibt das Bibliotheksobjekt an, das die Webanforderung einbindet.
response Gibt das interne Objekt an, das für die Ausführung der Anforderung verwendet wird.
updateTargetId Gibt das DOM-Element an, das für die Aktualisierung der Benutzeroberfläche verwendet wird.

Tabelle 3: Member der Klasse „AjaxOptions“

Der Member data enthält die Antwort. Handelt es sich um einen JSON-String, müssen Sie ihn mit der eval-Funktion in ein JavaScript-Objekt umwandeln.

Zusammenfassung

In diesem Artikel habe ich asynchrone Links in ASP.NET MVC vorgestellt. Im Vergleich zu reinem, direktem JavaScript-Code stellt ein Action Link (oder ein Route Link) eine Mischung aus Server- und Clientcode dar, die Ihnen einige Arbeit beim Generieren von URLs abnimmt – als Dank für den zusätzlichen Aufwand, der für die physische Ausführung der Anforderung erforderlich ist. Wenn Sie den Weg über jQuery einschlagen, wird Ihr Code wahrscheinlich etwas direkter und weniger weitschweifig aussehen. Allerdings müssen die Aktions-URLs manuell kodiert werden. Wie auch immer, liegt die Entscheidung für eine der Varianten bei Ihnen.

Dino Esposito ist Leiter für Forschung und Entwicklung bei Crionet, einer Firma, die sich auf webbasierte Lösungen für Sportereignisse in ganz Europa spezialisiert hat. Außerdem ist Dino der Autor von „Programming ASP.NET MVC“, Microsoft Press, 2010.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -