Tôi đang cố gắng tìm ra cách liệt kê các URL của Routes
trong RouteTable
.Liệt kê các URL tuyến đường Route MVC ASP.NET
Trong kịch bản của tôi, tôi đã các tuyến đường sau đây định nghĩa:
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" });
Nói cách khác, nếu trang web của tôi là mysite.com, mysite.com/create gọi PadController.CreateNote()
, và mysite.com/foobaris gọi PadController.Index()
.
Tôi cũng có một lớp học mà mạnh mẽ các loại tên người dùng:
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;
}
}
Trong constructor cho Username
, tôi muốn kiểm tra để chắc chắn rằng name
không phải là một con đường được xác định. Ví dụ: nếu điều này được gọi là:
var username = new Username("create");
Sau đó, ngoại lệ phải được ném. Tôi cần phải thay thế //... make sure 'name' isn't a route URL off root
bằng cách nào?
Sẽ không hợp lý khi thêm boolean 'được bảo vệ' vào DataTokens cho một tuyến đường nhất định. Không nhất thiết phải đề xuất nó, nhưng sẽ không khó để quản lý. –