Route.Defaults Egenskap

Definition

Hämtar eller anger de värden som ska användas om URL:en inte innehåller alla parametrar.

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

Egenskapsvärde

Ett objekt som innehåller parameternamnen och standardvärdena.

Exempel

I följande exempel visas hur du skapar ett Route objekt och anger Constraintsegenskaperna , DataTokensoch Defaults .

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

I följande exempel visas ett Route objekt vars Defaults egenskap innehåller en parameter som inte ingår i mönstret i Url egenskapen.

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

Kommentarer

Med Defaults egenskapen kan du ange värdet för en URL-parameter om URL:en inte innehåller ett segment för parametern. Du tilldelar ett RouteValueDictionary objekt till egenskapen Defaults . Varje element i RouteValueDictionary objektet innehåller namnet på en parameter och det värde som ska användas om parametern saknas.

Du kan inkludera ett standardvärde för en parameter som inte har definierats i Url egenskapen som ett segment. När ASP.NET routning hanterar en begäran skickas det här standardvärdet alltid till routningshanteraren. När du skapar en URL och inkluderar ett värde för en standardparameter som inte har definierats som ett segment, betraktas vägen endast som en matchning om det värde som du angav matchar standardvärdet för vägen.

Gäller för

Se även