2015-08-03 26 views
5

Cú pháp thích hợp để đưa vào phương thức RouteConfig.RegisterRoutes trong ứng dụng ASP.NET MVC là gì nếu tôi muốn ứng dụng bỏ qua tất cả các url bắt đầu bằng từ " điểm" nhưLàm thế nào để bỏ qua một tuyến đường cụ thể trong ASP.NET MVC định tuyến

http://myserver/score*.*

?

Nói cách khác, bất kỳ url nào bắt đầu bằng văn bản "điểm" tôi muốn ứng dụng của mình bỏ qua.

tôi đã cố gắng:

routes.IgnoreRoute("score*.*/{*pathInfo}"); 

Tôi cũng đã thử một số kết hợp khác của cú pháp này nhưng không thể khá được nó ngay.

Đây là những gì tôi có cho đến nay trong RouteConfig của tôi. Đó là khá nhiều các công cụ tiêu chuẩn.

public class RouteConfig 
{ 
    public static void RegisterRoutes(RouteCollection routes) 
    { 
     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

     routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { controller = "Order", action = "Add", id = UrlParameter.Optional } 
     ); 
    } 
} 
+4

Bạn muốn ASP.NET MVC làm gì khi yêu cầu tuyến đường bị bỏ qua của bạn, trả về 404? –

+0

Bạn có thể hiển thị cấu hình tuyến đường hoàn chỉnh của mình không? Để đảm bảo điều gì khác đang can thiệp ... – timothyclifford

+0

Đã cập nhật câu hỏi của tôi để hiển thị toàn bộ cấu hình Định tuyến. – Ray

Trả lời

4

Bạn nên đặt điểm số của bạn * * như một biểu thức regex trong IgnoreRoute:.

routes.IgnoreRoute("{score}/{*pathInfo}", new { score = @"score*.*" }); 

Đối với câu trả lời tổng quát hơn, bạn có thể sử dụng mẫu này để bỏ qua các tuyến đường mà bạn muốn:

Routes.IgnoreRoute("{*foo*}", new { foo = @"someregextoignorewhatyouwant"}); 

Vì vậy, đối với tuyến đường score.js và score.txt, bạn sẽ thêm regEx để lọc các tuyến đường đó.

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