me gustaría asignar a http://localhost/Guid-goes-hereResellerController
y fuego Index
acción del controlador que sólo cuando Guid-goes-here
es no el vacío Guid.enrutamiento a un controlador con, no vacía parámetro requerido Guid
Mi tabla de enrutamiento se ve así:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Reseller",
"{id}",
new { controller = "Reseller", action = "Index", id = Guid.Empty }
// We can mark parameters as UrlParameter.Optional, but how to make it required?
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
La acción en el ResellerController
se parece a esto:
public ActionResult Index(Guid id)
{
// do some stuff with non-empty guid here
}
vez que la aplicación ha comenzado, navegando a http://localhost rutas mí al ResellerController
con el Guid vacío como argumento para el parámetro action id
.
Usted puede hacer esto con una restricción de ruta, pero recomiendo utilizar URL más razonables si puede para que la ruta a los revendedores se vea como '/ reseller/{guid}'. La restricción de ruta tendrá que analizar todas las solicitudes HTTP para ver si son un GUID válido. – Cymen
@Cymen yes pero se requiere ommiting/reseller/octet desde la URL en mi escenario. – Dariusz