J'essaie de comprendre comment énumérer les URL de Routes
dans le RouteTable
.Énumérer les URL de routage ASP.NET MVC RouteTable
Dans mon scénario, j'ai les routes suivantes définies:
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 d'autres termes, si mon site est mysite.com, mysite.com/create invoque PadController.CreateNote()
et mysite.com/foobaris PadController.Index()
invoque .
J'ai aussi une classe fortement les noms d'utilisateur types:
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;
}
}
Dans le constructeur pour Username
, je voudrais vérifier pour vous assurer que name
n'est pas un itinéraire défini. Par exemple, si cela s'appelle:
var username = new Username("create");
Ensuite, une exception doit être émise. De quoi ai-je besoin pour remplacer //... make sure 'name' isn't a route URL off root
?
Il ne serait pas déraisonnable d'ajouter un booléen 'protected' aux DataTokens pour une route donnée. Pas nécessairement le suggérer, mais ce ne serait pas particulièrement difficile à gérer. –