2010-05-19 30 views
11

Tôi đang làm việc trên một dự án ASP.NET MVC2. Vấn đề là khi một chuỗi sẽ được viết lại vào URL chứa một ký tự đặc biệt như dấu gạch chéo ngược hoặc dấu chấm hỏi, URL sẽ sai, ngay cả khi tôi đã mã hóa nó trước đó.Dấu gạch chéo ngược có thể được mã hóa chính xác trong URL có ghi đè URL không?

Ví dụ:

  1. Tôi có một id sản phẩm "P001 \ 2-2".
  2. tôi mã hóa nó thành "P001% 5C2-2"
  3. URL http://domain.com/Product/p001%5C2-2 đáp Lỗi HTTP 400 - Bad Request.

Làm cách nào tôi có thể chính xác?

+0

Tôi đã xóa câu trả lời của tôi không? cho bây giờ, vì vậy câu hỏi có thể xuất hiện trong phần chưa được trả lời, sau đó một số người asp.net có thể xem. Tôi phải hiểu công cụ mã hóa url nhưng không phải asp.net-mvc cụ thể. – YOU

Trả lời

5

Hãy thử sử dụng Html.Encode để giải quyết dấu gạch chéo ngược của bạn. Nếu dấu gạch chéo ngược là ký tự 'đặc biệt' duy nhất trong id của bạn, bạn có thể sử dụng Thay thế ("% 5C", "\").

Bạn đã kiểm tra bản đồ định tuyến chưa? phải có một lộ trình như

sản phẩm/{} prodictID

0

Tôi đã có một vấn đề tương tự với% 2F trong URL của tôi. Hãy thử gắn cờ nOrmalize vào rewriteRule của bạn.

Ví dụ với bình thường hóa cờ "O" được in đậm:

RewriteRule^(. *) Index.html $ http://www.yoursite.com/ $ 1 [R = 301, L, O]

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