如何实现这个url路由?

时间:2013-09-12 07:45:39

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

让我简要解释一下我的需求:

我有这些控制器:

  • 用户
  • 产品
  • 注释

这些行动:

  • 用户/显示
  • 产品/显示
  • 注释/显示

现在网址如下:

  • 用户/显示/ 1
  • 产品/显示/ 3
  • 注释/显示/ 7

我想写一个url路由来实现这个目标:

  • 用户/显示/哈密-礼
  • 产品/显示/汽车
  • 注释/显示/ 7

怎么做?

先谢谢。

2 个答案:

答案 0 :(得分:1)

您需要做的就是修改Controller方法的签名,如下所示:

在你的UserController中:

public ViewResult Show(string id)

在您的ProductController中:

public ViewResult Show(string category)

并在你的CommentController中:

public ViewResult Show(int id)

它会起作用(当然你也需要改变实现......例如,假设字符串“hamid-reza”是某种类型的ID)。

答案 1 :(得分:1)

RouteConfig

routes.MapRoute(
    name: "Detail",
    url: "{controller}/{action}/{id}/{name}",
    defaults: new { 
        controller = "User", 
        action = "Show", 
        id = UrlParameter.Optional, 
        name = UrlParameter.Optional 
    }
);

背后的代码

Public ActionResult Show(int id)
{

}