DISCUSSIONs

Rewrite url areas in mvc 4

An discuss of Nô Cuội created at 2017-06-08 15:33:51

chào admin,

Hiện tại em muốn rewrite url cho areas nhưng đang chưa có hướng. Admin có thể support cho mình được không ạ?

Cụ thể: Mình có 1 domain: www.hoctot.vn/Product/Home/Index trong đó

Product là tên Areas, "Home" là tên controller,"Index" là têm action.

Trong controller "Home" còn có các action khác như "ContactUs", "AboutUs".

Vậy bây h mình muốn rút gọn đường linh thành: www.hoctot.vn/Product/AboutUs thì nó tương đương với đường link cũng là: www.hoctot.vn/Product/Home/AboutUs. 

Thì cấu hình kiểu gì? Rất mong admin or các bạn nào đọc được bài viết và có cách thì chia sẻ cho mình với.

Thân,



Truong Minh Tuan on 2017-06-09 08:46:51

Chào Anh!

Anh xem lại trong Controller Home đã có ActionResult ContactUs chưa anh nhé...!

Vì thông báo lỗi rất rõ ràng là không tìm thấy Resource của Application. Kinh nghiệm để anh làm tốt MVC thì anh nên cho chạy các ActionResult, sau khi chạy xong thì anh mới làm cái MapRoute tương ứng của nó;

Chúc anh hoàn thành tốt


Nô Cuội on 2017-06-08 16:58:40

Hi anh, 

Em đã làm theo anh hướng dẫn. Tuy nhiên ở bên ngoài view em có đặt đường link là "<a href="/Technology/ContactUs" class="hvr-sweep-to-bottom">Liên hệ</a>" để rotuer cho 

context.MapRoute(
                "Technology_Contactus",
                "Technology/Contactus",
                new { action = "ContactUs", controller = "Home", id = UrlParameter.Optional }
            );

Nhưng khi chạy trên hệ thống thì hệ thống báo lỗi:

Server Error in '/' Application.


The resource cannot be found.

Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable.  Please review the following URL and make sure that it is spelled correctly. 

Requested URL: /Technology/ContactUs
 


Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.7.2046.0

Rất mong nhận được phản hồi sớm từ anh.


Truong Minh Tuan on 2017-06-08 15:56:31

Chào bạn.

Trong Areas Product ProductAreaRegistration.cs, bạn làm thế này nhé

context.MapRoute(
                "Product_default",
                "san-pham",
                new { action = "Index", controller = "Home", id = UrlParameter.Optional }
            );

Hoặc các Action khác thì cũng làm tương tự

context.MapRoute(
                "Product_Contactus",
                "Product/Contactus",
                new { action = "ContactUs", controller = "Home", id = UrlParameter.Optional }
            );

Cứ thế bạn thực hiện nhé.

Chúc bạn thành công...!

TRUONGMINHTUAN







TRUONG MINH TUAN - support: ifsoft@live.com