2012-04-24 50 views
7

Tôi có một dự án lớn hơn với khoảng 9 bộ điều khiển. Bây giờ ở cuối của dự án thay đổi requeirement url. Làm thế nào để đối phó tốt nhất với tình trạng này - đổi tên các bộ điều khiển dường như chỉ là quá cồng kềnh ... tôi cần phải thay đổi tất cả các liên kết trong servercode và javascriptđổi tên bộ điều khiển asp.net mvc

+0

Bạn cũng có thể xem IIS Url Rewrite – Chandermani

+0

ReSharper6 là một công việc .. –

+0

Cũng lưu ý: bạn có thể sử dụng dấu gạch ngang trong các hành động cần được chỉ định trong url, trong việc xác định các quy tắc đặt tên phương thức C# tôi một thời gian để tìm hiểu điều đó). xem: http://stackoverflow.com/questions/30310/asp-net-mvc-how-do-i-enable-dashes-in-my-urls – Faust

Trả lời

6

Vấn đề của bạn có thể được giải quyết bằng cách thay đổi các tuyến đường hiện tại của bạn. Trong global.asax của bạn, bạn sẽ tìm thấy một đoạn mã như thế này

routes.MapRoute(
      "Default", // Route name 
      "{controller}/{action}/{id}", // URL with parameters 
      new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults 
     ); 

Đó ánh xạ URL '/ Controller/Action/Id' đến Controller, Action và Id. Bạn có thể cung cấp các tuyến đường như thế này

routes.MapRoute(
      "RefactoredRoute", // Route name 
      "SomeChangedURLBase/{action}/{id}", // URL with parameters 
      new { controller = "Controller", action = "Index", id = UrlParameter.Optional } // Parameter defaults 
     ); 

để định tuyến yêu cầu đến/SomeChangedURLBase ... sẽ được Bộ điều khiển xử lý.

Lưu ý rằng các tuyến đường này phải được đăng ký trước tuyến đường mặc định để tránh các liên kết được tạo trong chế độ xem trỏ đến tuyến đường mặc định và tạo URL cũ.

+0

một điểm tôi nhận ra sau khi triển khai thực hiện điều này: Bên trong trình duyệt của tôi, tôi vẫn thấy các url cũ nếu tôi duyệt thường xuyên ứng dụng, nhưng url mới của tôi được chấp nhận. Bất kỳ cách nào để thay đổi điều này - để các url mới được hiển thị? –

+0

Đây có thể là sự cố với tòa nhà đặt hàng Tuyến đường/ActionLink. Bạn có thể sử dụng RouteLink thay vì ActionLinks để tạo các liên kết. – saintedlama

+0

Nếu bạn đang sử dụng ActionLinks trên các trang của bạn và trỏ chúng đến bộ điều khiển và hành động, nó sẽ sử dụng URL mới nếu nó được đặt trước vị trí cũ trong bộ sưu tập tuyến đường. –

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