asp.net-mvc-3 - ASP.NET MVC C# 路由 - 传递空整数

标签 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.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/

相关文章:

c# - MVC 重定向到默认路由

asp.net-mvc-3 - 具有无参数构造函数的 Ninject 和 Provider 模型

asp.net-mvc-3 - ASP.NET MVC View 模型 : reload from backend on invalid post or put all properties in hidden inputs

c# - 如何使用knockout js指定name属性

angularjs - 使用 ASP.NET MVC 5 登录后重定向到 Angular 路由

c# - 通过 RedirectToRoute 发送列表

javascript - MVC 手动序列化复杂对象或模型绑定(bind)

c# - 使用 Razor View 引擎将 MVC 2 项目迁移到 MVC 3 的最佳方法是什么?

.net-4.0 - 任何人都可以在 .NET 4.0/MVC3 中重新创建我在具有 2 个或更多可选参数的路由中遇到的以下错误吗?

asp.net-mvc-4 - 如何将对磁盘上存在的目录的请求路由到 ASP.NET MVC?