Aurélien
Aurélien

Reputation: 63

ASP MVC 4 Routes error

I have a problem with my ASP MVC 4 application

here is my known error:

The parameters dictionary contains a null entry for parameter 'page' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Index(Int32, Int32, Int32)'

Here is my RouteConfig.cs:

routes.MapRoute(
            name: "AppareilRoute",
            url: "Appareil/page/{page}/{pageSize}/{triCol}",
            defaults: new { controller = "Appareil", action = "Index", page = "{page}", pageSize = "{pageSize}", triCol = "{triCol}" }
        );

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );

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

My call:

@Html.RouteLink("Appareils", "AppareilRoute", new { page=0, pageSize=50, triCol=0 })

The controller receive always nulls values.

I'm so disappointing with this error, I have tried many things, but none works...
Anyone could help me here? Thank you.

Upvotes: 1

Views: 335

Answers (1)

levelnis
levelnis

Reputation: 7705

You need to put integer values as your defaults in the route:

routes.MapRoute(
        name: "AppareilRoute",
        url: "Appareil/page/{page}/{pageSize}/{triCol}",
        defaults: new { controller = "Appareil", action = "Index", page = 0, pageSize = 50, triCol = 0 }
    );

Upvotes: 1

Related Questions