Sto cercando di capire come enumerare gli URL di Routes
nello RouteTable
.Enumerazione degli URL di route RouteTable di ASP.NET MVC
Nel mio scenario, ho i seguenti itinerari definiti:
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" });
In altre parole, se il mio sito è mysite.com, mysite.com/create invoca PadController.CreateNote()
, e mysite.com/foobaris invoca PadController.Index()
.
Ho anche una classe che fortemente tipi di nomi utente:
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;
}
}
Nel costruttore per Username
, vorrei controllare per assicurarsi che name
non è un percorso definito. Ad esempio, se questo è chiamato:
var username = new Username("create");
Quindi deve essere generata un'eccezione. Di cosa ho bisogno per sostituire //... make sure 'name' isn't a route URL off root
con?
Non sarebbe irragionevole aggiungere un valore booleano "protetto" ai DataToken per una determinata route. Non necessariamente lo suggerisce, ma non sarebbe particolarmente difficile da gestire. –