Freigeben über


Route.Defaults Eigenschaft

Definition

Ruft die zu verwendenden Werte ab, wenn die URL nicht alle Parameter enthält, oder legt sie fest.

public:
 property System::Web::Routing::RouteValueDictionary ^ Defaults { System::Web::Routing::RouteValueDictionary ^ get(); void set(System::Web::Routing::RouteValueDictionary ^ value); };
public System.Web.Routing.RouteValueDictionary Defaults { get; set; }
member this.Defaults : System.Web.Routing.RouteValueDictionary with get, set
Public Property Defaults As RouteValueDictionary

Eigenschaftswert

Ein Objekt, das die Parameternamen und Standardwerte enthält.

Beispiele

Das folgende Beispiel zeigt, wie Sie ein Route Objekt erstellen und die ConstraintsEigenschaften DataTokensund Defaults Eigenschaften festlegen.

void Application_Start(object sender, EventArgs e) 
{
    RegisterRoutes(RouteTable.Routes);
}

public static void RegisterRoutes(RouteCollection routes)
{
    Route reportRoute = new Route("{locale}/{year}", new ReportRouteHandler());
    reportRoute.Defaults = new RouteValueDictionary { { "locale", "en-US" }, { "year", DateTime.Now.Year.ToString() } };
    reportRoute.Constraints = new RouteValueDictionary { { "locale", "[a-z]{2}-[a-z]{2}" }, { "year", @"\d{4}" } };
    reportRoute.DataTokens = new RouteValueDictionary { { "format", "short" } };
    routes.Add(reportRoute);
}
Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
    RegisterRoutes(RouteTable.Routes)
End Sub

Shared Sub RegisterRoutes(ByVal routes As RouteCollection)
    Dim urlPattern As String
    Dim reportRoute As Route
    
    urlPattern = "{locale}/{year}"
    
    reportRoute = New Route(urlPattern, New ReportRouteHandler)
    reportRoute.Defaults = New RouteValueDictionary(New With {.locale = "en-US", .year = DateTime.Now.Year.ToString()})
    reportRoute.Constraints = New RouteValueDictionary(New With {.locale = "[a-z]{2}-[a-z]{2}", .year = "\d{4}"})
    reportRoute.DataTokens = New RouteValueDictionary(New With {.format = "short"})

    routes.Add(reportRoute)
End Sub

Das folgende Beispiel zeigt ein Route Objekt, dessen Defaults Eigenschaft einen Parameter enthält, der nicht Teil des Musters in der Url Eigenschaft ist.

void Application_Start(object sender, EventArgs e) 
{
    RegisterRoutes(RouteTable.Routes);
}

public static void RegisterRoutes(RouteCollection routes)
{
    Route reportRoute = new Route("{locale}/{year}", new ReportRouteHandler());
    
    reportRoute.Defaults = new RouteValueDictionary { { "months", "all" } };
    
    routes.Add(reportRoute);
}
Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
    RegisterRoutes(RouteTable.Routes)
End Sub

Shared Sub RegisterRoutes(ByVal routes As RouteCollection)
    Dim urlPattern As String
    Dim reportRoute As Route
    
    urlPattern = "{locale}/{year}"
    
    reportRoute = New Route(urlPattern, New ReportRouteHandler)
    
    reportRoute.Defaults = New RouteValueDictionary(New With {.months = "all"})
    
    routes.Add(reportRoute)
End Sub

Hinweise

Mit Defaults der Eigenschaft können Sie den Wert für einen URL-Parameter festlegen, wenn die URL kein Segment für diesen Parameter enthält. Sie weisen der Defaults Eigenschaft ein RouteValueDictionary Objekt zu. Jedes Element im RouteValueDictionary Objekt enthält den Namen eines Parameters und den Wert, der verwendet werden soll, wenn der Parameter fehlt.

Sie können einen Standardwert für einen Parameter angeben, der in der Url Eigenschaft nicht als Segment definiert ist. Wenn ASP.NET Routing eine Anforderung verarbeitet, wird dieser Standardwert immer an den Routenhandler übergeben. Wenn Sie eine URL erstellen und einen Wert für einen Standardparameter angeben, der nicht als Segment definiert ist, wird die Route nur als Übereinstimmung betrachtet, wenn der von Ihnen angegebene Wert mit dem Standardwert für die Route übereinstimmt.

Gilt für:

Weitere Informationen