Estoy tratando de averiguar cómo enumerar las URL de Routes
en el RouteTable
.Enumerando URL de ruta Route.able de ASP.NET MVC
En mi caso, me han definido las siguientes rutas:
routes.MapRoute
("PadCreateNote", "create", new { controller = "Pad", action = "CreateNote" });
routes.MapRoute
("PadDeleteNote", "delete", new { controller = "Pad", action = "DeleteNote" });
routes.MapRoute
("PadUserIndex", "{username}", new { controller = "Pad", action = "Index" });
En otras palabras, si mi sitio es mysite.com, mysite.com/create invoca PadController.CreateNote()
y mysite.com/foobaris invoca PadController.Index()
.
también tengo una clase que fuertemente tipos de nombres de usuario:
public class Username
{
public readonly string value;
public Username(string name)
{
if (String.IsNullOrWhiteSpace(name))
{
throw new ArgumentException
("Is null or contains only whitespace.", "name");
}
//... make sure 'name' isn't a route URL off root like 'create', 'delete'
this.value = name.Trim();
}
public override string ToString()
{
return this.value;
}
}
En el constructor de Username
, me gustaría comprobar para asegurarse de que name
no es una ruta definida. Por ejemplo, si esto se llama:
var username = new Username("create");
Luego se debe lanzar una excepción. ¿Qué necesito para reemplazar //... make sure 'name' isn't a route URL off root
con?
No sería irrazonable agregar un booleano 'protegido' a los DataTokens para una ruta dada. No necesariamente sugiriéndolo, pero no sería particularmente difícil de manejar. –