2011-12-10 35 views
6

Tôi muốn nhận một số đề xuất của chuyên gia về thiết kế url cho ứng dụng web của chúng tôi. Đây không phải là một trang web tên miền công cộng, nó là một mạng nội bộ dựa trên chuỗi cung ứng dựa trên ứng dụng chỉ được sử dụng bởi một nhóm người dùng được xác thực.Hướng dẫn thiết kế & cấu trúc url ASP.Net MVC

Here're một số ví dụ -

/Claim/12/Manage 
FORMAT: controller/{ID}/action 

Url trỏ đến "Khiếu nại Entry" wizard. Ở đây "12" là ClaimID. Nó được chia thành các tab cho mục nhập dữ liệu phụ. Ví dụ:/Yêu cầu/12/Print,/yêu cầu bồi thường/12/FileDetails, ...

/Users/List 
FORMAT: controller/action 

hiển thị một danh sách các người dùng hiện tại trong Grid. Shud này được rút ngắn thành "/ Users"? Tương tự như vậy, chúng tôi có một số thực thể khác cũng như "Vai trò, Tổ chức, v.v ..."

/Master/Manage/FileType 
FORMAT: controller/action/{argument} 

Chúng tôi cho phép người dùng quản lý dữ liệu bảng chính khác nhau. Cần biết bảng tổng thể nào được chọn (tức là đã gửi dưới dạng đối số). Có tốt hơn để đơn giản hóa nó thành "/ Manage/{argument}" thay thế và sau đó ánh xạ url đó theo yêu cầu ở trên không?

  • Có hợp lý trong MVC để che giấu hành động mặc định như "Claim/21/Quản lý" shud được "yêu cầu bồi thường/21", "/ Users/List" shud được "/ Users" ...
  • Arguments - chúng tốt hơn như được nhúng trong url hoặc tốt để nối thêm dưới dạng chuỗi truy vấn

Bất kỳ nguyên tắc chung hoặc tham chiếu nào cũng sẽ tuyệt vời.

Ref: Dịch vụ Web url - (Mục: Thiết kế URI Templates) http://msdn.microsoft.com/en-us/library/dd203052.aspx

Trả lời

2

Bạn có thể sử dụng Regular Expressions để đại diện cho các tuyến đường khác nhau mà bạn có. Ví dụ

protected void Application_Start() 
{ 
RouteTable 
.Routes 
.MapRoute(
"Default", // Route name 
"{controller}/{action}/{id}", // URL template 
new { controller="Mycontroller", action="Myaction", id=UrlParameter.Optional }, 
new { action = @"\d{2}-\d{2}-\d{4}" } 
); 
} 
Các vấn đề liên quan