2013-05-02 10 views
6
context.MapRoute("authorized-credit-card", "owners/{ownerKey}/authorizedcreditcard/{action}", 
new { controller = "authorizedcreditcard", action = "index" }, 
new { ownerKey = nameFormat }, dataTokens: new { scheme = Uri.UriSchemeHttps }); 

In meiner Route Datei habe ich über Art der Route.Warum DataTokens in Route sind?

Also, könnte mir jemand sagen, was ist die Bedeutung von dataTokens: new { scheme = Uri.UriSchemeHttps?

Und die Verwendung von oben dataTokens in der Aktionsmethode des Controllers?

+0

Ich glaube nicht, dass 'DataTokens' ist ein Parameter von' MapRoute' in MVC 3. –

+0

@vonv. Es tut uns leid. Eigentlich sollte es MVC 2 sein. Ich habe es korrigiert. Plz überprüfe das. – Sampath

Antwort

7

Nach the documentation:

Sie verwenden die DataTokens Eigenschaft auf Werte abrufen oder weisen mit der Strecke verbunden sind, die nicht verwendet werden, um zu bestimmen, ob eine Route ein URL-Muster übereinstimmt. Diese Werte werden an den Routen-Handler übergeben, wo sie zur Bearbeitung der Anfrage verwendet werden können.

Also DataTokens ist eine Art von zusätzlichen Daten, die mit der Route übergeben werden können. Es gibt 3 DataToken der Schlüssel vorgegeben ist (die Klasse unten kommt Form Quellcode von ASP.NET MVC 4, aber dem gleichen Schlüssel in der Version 2 verwendet werden):

internal class RouteDataTokenKeys 
{ 
    public const string UseNamespaceFallback = "UseNamespaceFallback"; 
    public const string Namespaces = "Namespaces"; 
    public const string Area = "area"; 
} 

Ich glaube nicht das Framework verwendet DataToken "genannt Schema "so ist es schwierig, Ihre Frage zu beantworten. Möglicherweise möchten Sie Ihren benutzerdefinierten Anwendungscode für DataTokens["scheme"] suchen und sehen, wo und warum es benötigt wird.

EDIT:

ich an article on "Adding HTTPS/SSL support to ASP.NET MVC routing" gefunden habe. Es gibt ein Beispiel für die Verwendung von "scheme" Daten-Token. Ich bin mir ziemlich sicher, dass Ihre Anwendung genau so funktioniert.