2012-07-04 12 views
5

Trong ASP.NET MVC 4 tập tin của tôi ứng dụng của RouteConfig, tôi đã đăng ký các tuyến đường mặc định sau đây:Remove Trailing Slash trong ASP.NET MVC 4 Hướng đến ứng dụng gốc

routes.MapRoute("Default", "{controller}/{action}/{id}", 
    new { controller = "home", action = "index", id = UrlParameter.Optional }); 

Bây giờ, trong quan điểm Razor của tôi, tôi muốn tạo URL tới gốc của ứng dụng của tôi như sau:

<a href="@Url.Action("index", "home")">Home</a> 

URL được tạo bao gồm dấu gạch chéo; nhấp vào liên kết để mở trang localhost/IISApplicationName /. Tuy nhiên, tôi muốn URL không chứa dấu gạch chéo để URL là localhost/IISApplicationName. Tạo các tuyến cho các hành động khác, chẳng hạn như /Tài khoản/Đăng nhập, không tạo URL có dấu gạch chéo - đó chỉ là tuyến đường liên kết đến gốc của ứng dụng của tôi.

Có cách nào để ngăn chặn việc định tuyến ASP.NET MVC từ nối thêm dấu gạch chéo vào tuyến trên không?

(tôi biết rằng tôi có thể chuyển hướng từ URL bao gồm dấu gạch chéo với một mà không có nó, nhưng tôi thà đã định tuyến tạo ra các URL đường đúng ở nơi đầu tiên.)

+1

Tôi không thể lặp lại vấn đề của bạn tôi sử dụng 'Mặc định route' và nó đi đến URL mà không'/' –

+1

chỉ cung cấp thông tin, vấn đề với trailing slash là gì? –

+0

@alexanderb 1) Cả hai liên kết đều hiển thị cùng một trang mặc dù có các URL hơi khác nhau. Không tốt ... 2) Đó là xấu xí ;-). –

Trả lời

0

Có bất kỳ cách nào để ngăn chặn ASP.NET MVC định tuyến từ phụ thêm dấu gạch chéo dấu vết vào các tuyến đường trên?

Bạn phải gạch chéo sau khi đường dẫn tương đối trống. Nếu bạn bằng cách nào đó tạo liên kết với href localhost/IISApplicationName thì trình duyệt sẽ thêm dấu "/" vào cuối (bạn có thể dễ dàng xác minh điều này trong firebug, chỉ cần nhập http://stackoverflow.com trong thanh địa chỉ của trình duyệt và kiểm tra tab yêu cầu bạn có thể thấy dấu "/").

Điều này là do theo HTTP/1.1,

đường dẫn tuyệt đối không thể emtpy; nếu không có mặt nào trong bản gốc URI, thì nó được cho là "/" (gốc máy chủ).

http://www.faqs.org/rfcs/rfc2616.html#ixzz0kGcaRbqU (phần 5.1.2)