How to make clean url in mvc 4?

Total Post:40

Points:280
 1798  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. 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 }
                );

      Modified On Apr-09-2018 01:41:29 AM

Answer

NEWSLETTER

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