RouteTable
にRoutes
のURLを列挙する方法を理解しようとしています。私のシナリオではASP.NET MVCルートテーブルのルートURLを列挙する
、私は定義された以下の路線があります。私のサイトはmysite.com、mysite.com/createはPadController.CreateNote()
を呼び出し、mysite.com/foobaris呼び出した場合、言い換えれば
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" });
をPadController.Index()
。
は私もクラス強力なタイプのユーザ名があります。
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;
}
}
Username
のコンストラクタでは、私はname
が定義されたルートではないことを確認してくださいしたいと思います。たとえば、これが呼び出された場合:
var username = new Username("create");
例外をスローする必要があります。 //... make sure 'name' isn't a route URL off root
を何に置き換える必要がありますか?
特定のルートのDataTokensに「保護された」ブール値を追加することは不合理ではありません。必ずしもそれを示唆するものではありませんが、管理することは特に難しいことではありません。 –