Route.Defaults Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene o establece los valores que se usarán si la dirección URL no contiene todos los parámetros.
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
Valor de propiedad
Objeto que contiene los nombres y los valores predeterminados de los parámetros.
Ejemplos
En el ejemplo siguiente se muestra cómo crear un Route objeto y establecer las Constraintspropiedades , DataTokensy 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
En el ejemplo siguiente se muestra un Route objeto cuya Defaults propiedad contiene un parámetro que no forma parte del patrón en la Url propiedad .
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
Comentarios
La Defaults propiedad permite establecer el valor de un parámetro de dirección URL si la dirección URL no contiene un segmento para ese parámetro. Asigna un RouteValueDictionary objeto a la Defaults propiedad . Cada elemento del RouteValueDictionary objeto contiene el nombre de un parámetro y el valor que se va a usar si falta el parámetro.
Puede incluir un valor predeterminado para un parámetro que no está definido en la Url propiedad como un segmento. Cuando ASP.NET enrutamiento controla una solicitud, este valor predeterminado siempre se pasa al controlador de ruta. Al construir una dirección URL e incluir un valor para un parámetro predeterminado que no está definido como un segmento, la ruta solo se considerará una coincidencia si el valor proporcionado coincide con el valor predeterminado de la ruta.