Freigeben über


Route.Defaults Eigenschaft

Definition

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

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 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 einschließen, der nicht in der Url -Eigenschaft 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 einschließen, der nicht als Segment definiert ist, wird die Route nur dann als Übereinstimmung betrachtet, wenn der angegebene Wert mit dem Standardwert für die Route übereinstimmt.

Gilt für:

Weitere Informationen