Tôi gặp sự cố với một ràng buộc cụ thể mà tôi đang cố gắng thiết lập trên tuyến đường. URL của tôi phải trông giống như sau: http://hostname/id-my-title-can-be-that-long trong đó id được tạo bằng chữ số và tiêu đề là ký tự chữ thường có dấu phân cách dấu gạch ngang. Id và tiêu đề cũng được phân tách bằng dấu gạch ngang. Ví dụ: http://hostname/123-my-title.Hạn chế lộ trình ASP.NET MVC regex
Dưới đây là định nghĩa con đường của tôi:
routes.MapRoute(
"Test",
"{id}-{title}",
new { controller = "Article", action = "Index" },
new { id = @"(\d)+", title = @"([a-z]+-?)+" }
);
URL được tạo ra một cách chính xác với các helper html:
<%: Html.ActionLink("My link", "Index", "Article", new { id = Model.IdArticle, title = Model.UrlTitle }, null) %>
nơi, tất nhiên, Model.IdArticle là một Int32 và Model.UrlTitle một chuỗi preformed của tiêu đề của tôi phù hợp với yêu cầu của tôi (chỉ trường hợp thấp hơn, không gian thay thế bằng dấu gạch ngang).
Vấn đề là, khi tôi theo liên kết, điều khiển bên phải & phương pháp không được gọi, nó rơi xuống tuyến đường tiếp theo sai.
Để lưu bản ghi, tôi đang sử dụng ASP.NET MVC 2.
Có ai có ý tưởng không?
Cảm ơn trước, Fabian
Cuối cùng, chúng tôi sẽ tách ID khỏi tiêu đề bằng dấu gạch dưới. Tôi vẫn tự hỏi tại sao điều này không hoạt động nhưng nó không còn chặn nữa. Cảm ơn bạn đã giúp đỡ! –