【问题标题】:I need to take the controller action's name out of the URL, but don't know how [duplicate]我需要从 URL 中取出控制器操作的名称,但不知道如何 [重复]
【发布时间】:2015-07-08 21:40:46
【问题描述】:
示例:我想查看一个 ID 为 12483 的合同,所以我想使用这个 URL:
/Contract/12483
我不能在 ASP.NET MVC 中执行此操作,因为 ASP.NET 路由期望 /{controller}/{action}/{id} 能够路由到所需的代码来处理请求,所以我会这样做:
/Contract/View/12483
然而,这不是 RESTful。
有人知道解决这个问题的方法吗?
【问题讨论】:
标签:
asp.net-mvc
asp.net-mvc-3
asp.net-mvc-4
【解决方案1】:
一种选择是您可以使用ActionResult 的名称作为Index 而不是view。
或者你可以在你的App_Start/RouteConfig.cs中使用它
routes.MapRoute(
name: "Book",
url: "{controller}/{id}",
defaults: new { controller = "Contract", action = "View", id = UrlParameter.Optional });