2009-03-05 20 views
3

Ich versuche, meine eigene Lightweight MVC für .Net 2.0 mit NHaml als die Ansicht Motor zu schreiben.Wie funktioniert ASP.Net MVC ActionLink?

In ASP.Net 3.5 MVC die View-Datei haben wir den Link durch den Code-Schnipsel zu spezifizieren.

Html.ActionLink("Add Product","Add"); 

In MVC binär gibt es keine Funktion, die diesem Aufruf entspricht.

I Only gefunden:

(In der Klasse System.Web.Mvc.Html.LinkExtensions)

public static string ActionLink(this System.Web.Mvc.HtmlHelper htmlHelper, 
    string linkText, string actionName) 

ähnliche statische Klassen wie FormExtensions Es gibt InputExtensions usw.

Wie geht ASP.Net MVC damit um? Generiert es dynamischen Code für Html.ActionLink?

Antwort

5

Die Methode ActionLink ist eine Erweiterungsmethode (daher die this vor dem Typ des ersten Parameters). Dies bedeutet, dass Sie diese Methode als Instanzmethode für alle Instanzen HtmlHelper verwenden können, obwohl sie nicht unter HtmlHelper definiert ist.

Html ist eine Eigenschaft, auf die Ansicht des Typs HtmlHelper. Dies bedeutet, dass Sie die Erweiterungsmethode ActionLink darauf verwenden können.

Die ActionLink Methode selbst tut nichts anderes, als eine Verbindungskette erzeugen (in Bezug auf seine Argumente) und diese Zeichenfolge zurück.

0

Haben Sie die code auf Codeplex ausgecheckt? Das MVC Framwork ist Open Source, so dass Sie so viel herumgraben können, wie Sie benötigen.

Verwandte Themen