MapRouter trong là gì

MapRouter trong ASPX.NET MVC là gì

Tại sao cần sử dụng MapRouter trong ASPX.NET MVC ?

Nếu bạn đã từng làm ASPX.NET thì khi truy cập 1 dữ liệu, mình ví dụ là tin tức

http://localhost/module_tin_tuc/xem_tin_chi_tiet.aspx?id=4

Nếu bạn nhìn url trên bạn biết chắc chắn là xem_tin_chi_tiet.aspx nằm trong thư mục module_tin_tuc

Như vậy web không chuyển nghiệp, nhìn có vể sơ sài thế nào đúng ko ạ?

Chính vì điều đó MapRouter ra đời, giúp url thân thiện hơn, lập trình viên có thể đổi lại url theo ý của mình mà không quá mang tính kỹ thuật.

ASP.NET Routing cho phép bạn sử dụng các URL khác (không phải là url gốc) dẫn đến một file cụ thể trong cấu trúc website.

Cũng đường dẫn web trên nhưng đổi lại là

http://localhost/news/details/4

Bạn thấy có vẻ url aspx ổn hơn rồi đúng không ạ, thân thiện đẹp, mà còn lại bảo mật web aspx.


public class MvcApplication : System.Web.HttpApplication
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); //nếu như URL có chứa axd.. thì bỏ qua điều hướng url

        routes.MapRoute(
            "Default",                                              // Tên của routes
            "{controller}/{action}/{id}",                           // cấu trúc URL
            new { controller = "Home", action = "Index", id = "" }  // Khi vào trang chủ mặc định là
        );

    }

    protected void Application_Start()
    {
        RegisterRoutes(RouteTable.Routes);
    }
}

Giải thích cấu trúc URL ASPX:

{controller}/{action}/{id}     // cấu trúc URL hoạt động như thế nào

Khi người dùng gõ Home/News/2 thì ASPX MVC phân tích cú pháp url biết được là
Vào Controller Home, tìm đến Action New

 

Trong thực tế khi lập trình App Web / Website chúng ta sử dụng nhiều MapRouter.

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

        routes.MapRoute(
            name: "news",
            url: "news/{id}",
            defaults: new { controller = "News", action = "Index"}
        );

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
    }
}

 
    https://msdn.microsoft.com/en-us/library/cc668201.aspx
    http://www.tutorialsteacher.com/mvc/routing-in-mvc
 

MapRouter trong ASPX.NET MVC là gì