我正在 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,但无法获取页码。
用户的 Controller 初始化如下:
public ActionResult Details(long id, int? page)
页面始终返回 null(我需要页面作为空整数)。
我定义的路线错误吗?
谢谢
最佳答案
如果 page
是可选的,
id
就不能是可选的。只有路由定义的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)
{
...
}
关于asp.net-mvc-3 - ASP.NET MVC C# 路由 - 传递空整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5436031/