Tôi có một ứng dụng MVC.NET với một lộ trình như sau:Làm cách nào để cho phép "Ký tự không hợp lệ trong đường dẫn"?
routes.MapRoute("member", "member/{id}/{*name}", new { controller = "member", action = "Details", id = "" }, new { id = @"\d+" });
Do đó, một liên kết có thể là một cái gì đó như thế này: http://domain/member/123/any_kind_of_username
này hoạt động tốt nói chung nhưng nếu đường dẫn chứa bất hợp pháp ký tự (ví dụ: qoute kép: http://domain/member/123/my_ "người dùng" _name) Tôi nhận được "System.ArgumentException: Ký tự không hợp lệ trong đường dẫn".
Sau khi có nhiều gợi ý, đề xuất tốt nhất có vẻ là đảm bảo rằng url không chứa bất kỳ ký tự nào như vậy. Thật không may, đó là ngoài tầm kiểm soát của tôi trong trường hợp này.
Có cách nào để giải quyết vấn đề này không?
có lẽ chúng được gọi là các ký tự không hợp lệ vì bạn không thể sử dụng chúng ... –
Không phải chúng có được mã hóa URL không? – Oded
@Mitch - Vâng, một trích dẫn kép, ví dụ, hoạt động tốt cho Apache vì vậy tôi không thể thấy lý do tại sao IIS sẽ không cho phép nó. @Oded - Vấn đề là tôi không kiểm soát được các url này. – hbruce