C# ASP MVC 4路由错误
我的ASP MVC 4应用程序有问题 以下是我已知的错误: 参数字典包含方法“System.Web.Mvc.ActionResult Index(Int32,Int32,Int32)”的非null类型“System.Int32”的参数“page”的null条目 这是我的C# ASP MVC 4路由错误,c#,asp.net-mvc,asp.net-mvc-routing,C#,Asp.net Mvc,Asp.net Mvc Routing,我的ASP MVC 4应用程序有问题 以下是我已知的错误: 参数字典包含方法“System.Web.Mvc.ActionResult Index(Int32,Int32,Int32)”的非null类型“System.Int32”的参数“page”的null条目 这是我的RouteConfig.cs: routes.MapRoute( name: "AppareilRoute", url: "Appareil/page/{page}/{pageSiz
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 }
);
我的电话:
@Html.RouteLink("Appareils", "AppareilRoute", new { page=0, pageSize=50, triCol=0 })
控制器始终接收空值
我对这个错误感到非常失望,我尝试了很多方法,但没有一种有效…有人能帮我吗?谢谢。您需要在路由中将整数值作为默认值:
routes.MapRoute(
name: "AppareilRoute",
url: "Appareil/page/{page}/{pageSize}/{triCol}",
defaults: new { controller = "Appareil", action = "Index", page = 0, pageSize = 50, triCol = 0 }
);
您需要在路由中将整数值作为默认值:
routes.MapRoute(
name: "AppareilRoute",
url: "Appareil/page/{page}/{pageSize}/{triCol}",
defaults: new { controller = "Appareil", action = "Index", page = 0, pageSize = 50, triCol = 0 }
);
作为第一步,尝试routedebug,看看它告诉您正在发生什么:最后一个MapRoute不是覆盖了您的AppareilRoute吗?试着把你所有的自定义路由放在普通路由之后。我的呼叫似乎与我的路由不匹配,这就是routedebug。使用的路由是默认路由,为什么我的请求不匹配?@Kugel自定义路由必须在通用路由之前。路由是自上而下匹配的。作为第一步,请尝试RoutedBug查看它告诉您的情况:最后一条MapRoute不是覆盖了您的设备路由吗?试着把你所有的自定义路由放在普通路由之后。我的呼叫似乎与我的路由不匹配,这就是routedebug。使用的路由是默认路由,为什么我的请求不匹配?@Kugel自定义路由必须在通用路由之前。路由是自上而下匹配的。如果使用ActionLink而不是RouteLink如何
@Html.ActionLink(“Index”,“Appareil”,new{page=0,pageSize=50,triCol=0})
我认为使用page可能会导致一个问题-这条路线改变了吗<代码>url:“Appareil/pages/{page}/{pageSize}/{triCol}”也不起作用。我的呼叫似乎与我的路线不匹配,这就是routedebug。使用的路由是默认路由,为什么我的请求与AppareilRoute不匹配?请尝试使url开头的匹配器与控制器/操作模式完全不同,类似这样:url:“appareil pages/{page}/{pageSize}/{triCol}”
我尝试了这个url:“appareil/{page}/{pageSize}/{triCol}”现在一切都好了!!如果你用ActionLink而不是RouteLink呢@Html.ActionLink(“Index”,“Appareil”,new{page=0,pageSize=50,triCol=0})
我认为使用page可能会导致一个问题-这条路线改变了吗<代码>url:“Appareil/pages/{page}/{pageSize}/{triCol}”也不起作用。我的呼叫似乎与我的路线不匹配,这就是routedebug。使用的路由是默认路由,为什么我的请求与AppareilRoute不匹配?请尝试使url开头的匹配器与控制器/操作模式完全不同,类似这样:url:“appareil pages/{page}/{pageSize}/{triCol}”
我尝试了这个url:“appareil/{page}/{pageSize}/{triCol}”现在一切都好了!!