MVC可选路由参数

时间:2014-07-29 02:45:13

标签: asp.net-mvc asp.net-mvc-5

我希望能够导航到/orders/show/orders/show/10orders/show/10/20。我尝试了以下方法:

    [Route("orders/show/{skip=0:int:min(0)?}/{take=10:int:min(0)?}")]
    public ActionResult Show(int? skip, int? take)
    {
        var inventory = ApplicationDbContext.Orders.OrderBy(x => x.Id).Skip(skip.Value).Take(take.Value).ToList();

        return View(inventory);
    }

基本上,目标是建立一个列出1-10,11-20等订单的表。除非我输入所有参数,否则我会得到404 Not found异常。

1 个答案:

答案 0 :(得分:0)

您需要在routeconfig文件中注册路由。例如在AppStart文件夹中,转到routeconfig并注册路由。 e.g。

public static void RegisterRoutes(RouteCollection routes)
    {
        routes.MapRoute(
            name: "Orders",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Orders", action = "Show", id = UrlParameter.Optional }
    }