2010-08-22 22 views
11

ASP.NET MVC xử lý ký tự dấu chấm làm chữ cho các tuyến for a long time. Tuy nhiên, nó không khớp với tuyến đường nếu dấu chấm ở cuối phần tuyến đã cho.Làm thế nào để có được ASP.NET MVC để phù hợp với dấu chấm (".") Nhân vật ở cuối trong một tuyến đường?

Với tuyến đường {controller}/{action}/{id} MVC phù hợp sau đây:

http://test/somecontroller/someaction/some.id 
http://test/somecontroller/someaction/....some.id 

Nhưng không phải những:

http://test/somecontroller/someaction/someid. 
http://test/somecontroller/someaction/someid... 

Yêu cầu của tôi là phải có số tùy ý các dấu chấm bất cứ nơi nào trong phần id. Có một cách để làm việc này xung quanh hoặc là nó một tình huống được biết rằng chúng ta cần phải tránh? Dường như với tôi một lỗi MVC 2.

P.S. Bạn cũng có thể tạo lại hành vi tương tự trên StackOverflow bằng cách thêm dấu chấm vào chuỗi câu hỏi trong URL tại các địa điểm khác nhau.

EDIT: Rất tiếc, điều này có vẻ trùng lặp với "The resource cannot be found." error when there is a "dot" at the end of the url. Tôi không thể tìm thấy nó trước đây.

Trả lời

11

Nếu bạn đang sử dụng .NET 4.0, bạn có thể đặt cờ này trong phần system.web của web.config của bạn và nó sẽ được phép:

<httpRuntime relaxedUrlToFileSystemMapping="true" /> 

Tôi đã thử nghiệm nó và nó hoạt động. Haack có giải thích về nó.

+0

Điều này chỉ đơn giản là làm việc. Cảm ơn! –

+1

điều gì về IIS 6 và ASP.NET 4.0? Tôi vẫn gặp lỗi này khi sản xuất (iis6) nhưng không phải tại máy của tôi (iis7) – Serhiy

+0

Сергій, bạn có giải quyết được vấn đề của mình không? Tôi có cùng một vấn đề: http://stackoverflow.com/questions/9336569/iis-6-not-allowing-periods-in-the-querystring – Roger

Các vấn đề liên quan