How can I create a friendly URL in ASP.NET MVC?

前端 未结 3 1394
眼角桃花
眼角桃花 2020-11-28 03:23

How do I generate friendly URLs within the ASP.NET MVC Framework? For example, we\'ve got a URL that looks like this:

http://site/catalogue/BrowseByStyleLevel/1

        
相关标签:
3条回答
  • 2020-11-28 03:39

    This is how I have implemented the slug URL on my application. Note: The default Maproute should not be changed and also the routes are processed in the order in which they're added to the route list.

    routes.MapRoute(
        "Default", // Route name
        "{controller}/{action}/{id}", // URL with parameters
        new { controller = "Home",
              action = "Index",
              id = UrlParameter.Optional
        } // Parameter defaults
    );
    routes.MapRoute("Place", "{controller}/{action}/{id}/{slug}", new { controller = "Place", action = "Details", id = UrlParameter.Optional,slug="" });
    
    0 讨论(0)
  • 2020-11-28 03:39

    you have a route on the global.asax

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

    you can define your own route like :

    controller is the cs class inside the the controllers folder.

    you can define your id - with the name you choose.

    the system will pass the value to your actionResult method.

    you can read more about this step here : http://www.asp.net/learn/mvc/tutorial-05-cs.aspx

    0 讨论(0)
  • 2020-11-28 03:56

    There are two steps to solve this problem. First, create a new route or change the default route to accept an additional parameter:

    routes.MapRoute(  "Default", // Route name
                       "{controller}/{action}/{id}/{ignoreThisBit}", 
                       new { controller = "Home", 
                             action = "Index", 
                             id = "",
                             ignoreThisBit = ""}  // Parameter defaults )
    

    Now you can type whatever you want to at the end of your URI and the application will ignore it.

    When you render the links, you need to add the "friendly" text:

    <%= Html.ActionLink("Link text", "ActionName", "ControllerName",
                        new { id = 1234, ignoreThisBit="friendly-text-here" });
    
    0 讨论(0)
提交回复
热议问题