我正在使用Web应用程序中的MVC 3,我遇到了路由问题。
我正在定义我的路由器处理程序:
routes.MapRoute(
"Users",
"{controller}.aspx/{action}/{id}/{page}", // URL with parameters
new { controller = "Users", action = "Details", id = UrlParameter.Optional, page = UrlParameter.Optional } // Parameter defaults
);
网址为:http://app.domain/Users.aspx/Details/114142/5(示例)
我很容易得到用户的id,但我无法获得页码。
用户控制器初始化如下:
public ActionResult Details(long id, int? page)
页面始终返回null(我需要将页面作为空整数)。
我定义路线错了吗?
由于
答案 0 :(得分:4)
id
是可选的,则 page
不能是可选的。只有路径定义的 last 参数才是可选的。
所以:
routes.MapRoute(
"Users",
{controller}.aspx/{action}/{id}/{page}",
new {
controller = "Users",
action = "Details",
page = UrlParameter.Optional
}
);
然后:/Users.aspx/Details/114142/5
将成功映射到
public ActionResult Details(long id, int? page)
{
...
}
答案 1 :(得分:-2)
您使用的是错误的网址。 试试这个:
http://app.domain/Users.aspx/Details/114142?page=5