该URL的MVC路由应该是什么?

时间:2016-10-05 19:05:59

标签: c# asp.net-mvc asp.net-mvc-routing

我需要像这样为URL定义MVC路由:

http://localhost/RealSuiteApps/RealHelp/-1/Detail/BRK18482020

其中:

详细信息 - 是控制器名称

  • 应执行默认操作索引
  • -1是某个客户端ID
  • BRK18482020 orderId

我需要使用orderId参数转到DetailController,Index操作。

我试过了:

routes.MapRoute(
    name: "Detail",
    url: "Detail/{id}",
    defaults: new { clientid = "-1", controller = "Detail", action = "Index", id = UrlParameter.Optional }
);

但是我收到一条消息“找不到页面”。 我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

假设DetailController操作

public ActionResult Index(int clientId, string orderId) { ... }

然后路由将映射为

routes.MapRoute(
    name: "Detail",
    url: "{cientId}/Detail/{orderId}",
    defaults: new { clientid = "-1", controller = "Detail", action = "Index" }
);

请注意,这也应该在任何默认路由之前注册。