当前位置:编程学习 > C#/ASP.NET >>

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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,