asp.net mvc 路由问题, 哪位大哥帮看看
routes.MapRoute("第一条路由",
"{controller}/{action}/{identity}",
new { controller = "Home", action = "Index", identity = UrlParameter.Optional }
);
routes.MapRoute(
"第二条路由", // 路由名称
"{controller}/{action}/{currentPage}/{pageSize}",
new { controller = "Home", action = "Index", currentPage = 1, pageSize = 20 }
);
现在定义了这两条路由,
访问这个地址是没问题的. http://localhost:28056/Article/Details/8cfcc82e-4f76-4842-ad8a-5397e2f51acd
但是这样. http://localhost:28056/Article/List 就有问题了.
但是我输入把第一条路由注释掉的话, http://localhost:28056/Article/List 没问题,
但是 http://localhost:28056/Article/Details/8cfcc82e-4f76-4842-ad8a-5397e2f51acd 这个就挂了.
这个是什么问题, 谁知道吗?
--------------------编程问答-------------------- --------------------编程问答-------------------- 但是我输入把第一条路由注释掉的话, http://localhost:28056/Article/List 没问题,
但是 http://localhost:28056/Article/Details/8cfcc82e-4f76-4842-ad8a-5397e2f51acd 这个就挂了.
这个时候
controller = "Article",
action = "Details",
currentPage = 8cfcc82e-4f76-4842-ad8a-5397e2f51acd,
pageSize = 20
应该是你程序对curentPage的值处理的时候出错的. --------------------编程问答-------------------- 晕, 那应该怎么定义路由呢 ? 楼上? --------------------编程问答-------------------- 不清楚你的具体情况是什么
不过暂时可以这样做: 设置一个默认值.
routes.MapRoute(
"第一条路由",
"{controller}/{action}/{identity}",
new { controller = "Home", action = "Index", identity = UrlParameter.Optional } ,
new{ action = "Details"}
);
routes.MapRoute(
"第二条路由", // 路由名称
"{controller}/{action}/{currentPage}/{pageSize}",
new { controller = "Home", action = "Index", currentPage = 1, pageSize = 20 },
new{ action = "List"}
);
--------------------编程问答--------------------
另: 你的 ~/Article/List 页面上. 处理url上面currentPage 参数的时候.判断下是否可以转化成数字, 要不然挂掉多不好啊. --------------------编程问答-------------------- 我的Controller上的方法
public ActionResult List(int currentPage, int pageSize)
算是转化成数字了吧.
--------------------编程问答-------------------- 其实mvc里面int参数用int? 类型比较好. --------------------编程问答-------------------- MVC不是还是C#语言写的吗? 还是.NET框架, 为何int类型用int? 比较好? 谢谢 --------------------编程问答-------------------- --------------------编程问答--------------------
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Home",
"{Controller}/{Action}",
new { Controller = "Home", Action = "Index" }
);
routes.MapRoute(
"PhotoDetails",
"{Controller}/{Action}/{identity}",
new { Controller = "Home", Action = "Details", identity = UrlParameter.Optional },
new { Action = "Details" }
);
routes.MapRoute(
"List", // 路由名称
"{Controller}/{Action}/{currentPage}/{pageSize}", // 带有参数的 URL
new { Controller = "Home", Action = "List", currentPage = 1, pageSize = 20 }, // 参数默认值
new { Action = " List" }
);
}
已经加了路由参数的约束值, 但是还是不行..
补充:.NET技术 , ASP.NET