Condividi tramite


Route.Defaults Proprietà

Definizione

Ottiene o imposta i valori da usare se l'URL non contiene tutti i parametri.

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

Valore della proprietà

Oggetto che contiene i nomi di parametro e i valori predefiniti.

Esempio

Nell'esempio seguente viene illustrato come creare un Route oggetto e impostare le Constraintsproprietà , DataTokense 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

Nell'esempio seguente viene illustrato un oggetto la cui Defaults proprietà contiene un Route parametro che non fa parte del modello nella Url proprietà .

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

Commenti

La Defaults proprietà consente di impostare il valore per un parametro URL se l'URL non contiene un segmento per tale parametro. Si assegna un RouteValueDictionary oggetto alla Defaults proprietà . Ogni elemento nell'oggetto RouteValueDictionary contiene il nome di un parametro e il valore da usare se il parametro non è presente.

È possibile includere un valore predefinito per un parametro non definito nella Url proprietà come segmento. Quando ASP.NET routing gestisce una richiesta, questo valore predefinito viene sempre passato al gestore della route. Quando si costruisce un URL e si include un valore per un parametro predefinito non definito come segmento, la route verrà considerata una corrispondenza solo se il valore specificato corrisponde al valore predefinito per la route.

Si applica a

Vedi anche