Asp.net mvc 3 ASP.NET MVC#路由-传递空整数
我在一个web应用程序中使用MVC 3,我在路由方面遇到了一个问题 我这样定义路由器处理程序:Asp.net mvc 3 ASP.NET MVC#路由-传递空整数,asp.net-mvc-3,asp.net-mvc-routing,Asp.net Mvc 3,Asp.net Mvc Routing,我在一个web应用程序中使用MVC 3,我在路由方面遇到了一个问题 我这样定义路由器处理程序: routes.MapRoute( "Users", "{controller}.aspx/{action}/{id}/{page}", // URL with parameters new { controller = "Users", action = "Details", id = UrlParameter.
routes.MapRoute(
"Users",
"{controller}.aspx/{action}/{id}/{page}", // URL with parameters
new { controller = "Users", action = "Details", id = UrlParameter.Optional, page = UrlParameter.Optional } // Parameter defaults
);
public ActionResult Details(long id, int? page)
url是:(示例)
我已成功获取用户id,但无法获取页码
用户的控制器初始化如下:
routes.MapRoute(
"Users",
"{controller}.aspx/{action}/{id}/{page}", // URL with parameters
new { controller = "Users", action = "Details", id = UrlParameter.Optional, page = UrlParameter.Optional } // Parameter defaults
);
public ActionResult Details(long id, int? page)
页面总是返回null(我需要页面作为null整数)
我把路线定义错了
谢谢您使用了错误的URL。
试试这个:
http://app.domain/Users.aspx/Details/114142?page=5
如果
page
是可选的,id
不能是可选的。只有路由定义的最后一个参数是可选的
因此:
然后:/Users.aspx/Details/114142/5
将成功映射到
public ActionResult Details(long id, int? page)
{
...
}
除了他不想要
/Users.aspx/Details/114142?page=5
。他想要/Users.aspx/Details/114142/5
。达林是对的。事实上,我使用的是带有参数的url。现在,我想停止使用page=5来传递5作为页面。谢谢Darin,这正是我想要的。干杯;)