HOW TO MAKE CLEAN URL IN MVC 4?

Anurag Sharma

Total Post:40

Points:280
Posted by  Anurag Sharma
 1358  View(s)
Ratings:
Rate this:

Hi I’m want to create simple blog for clean url I like to use routing in my app.

I added to RouteConfig.cs this code:

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 = "Home", action = "Index", id = UrlParameter.Optional }

                );

 

                routes.MapRoute(

                    name: "ArticleList",

                    url: "Articles/{category}/{page}",

                    defaults: new

                    {

                        controller = "Articles",

                        category = UrlParameter.Optional,

                        page = 1

                    });

            }

        }

 

And if I write in web browser url:

http://localhost:6666/Articles/SomeCategory/3

I want to move to this controller:

public class ArticlesController : ControllerBase<IHomeService>

        {

            public ActionResult Index(string category, int page = 0)

            {

                return View("~/Views/Article/Articles.cshtml");

            }

 

        }

 

with parameters category = "SomeCategory" and page = 1.

All I recieve is Server Error in '/' Application. The resource cannot be found.

What is wrong?

  1. David Miller

    Post:30

    Points:210
    Re: How to make clean url in mvc 4?

    Hi try this code:

    routes.MapRoute(

                name: "ArticleList",

                url: "{controller}/{category}/{page}",

                defaults: new

                {

                    category = UrlParameter.Optional,

                    page = 1,

                    action = "Index"

                },

                constraints: new

                {

                    controller = "Articles"

                }

           );

     

     

                routes.MapRoute(

                    name: "Default",

                    url: "{controller}/{action}/{id}",

                    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }

                );

Answer

NEWSLETTER

Enter your email address here always to be updated. We promise not to spam!