Asp.net mvc 3 我们可以在Asp.net MVC应用程序的URL中仅使用控制器名称和id参数吗

Asp.net mvc 3 我们可以在Asp.net MVC应用程序的URL中仅使用控制器名称和id参数吗,asp.net-mvc-3,url-routing,asp.net-routing,Asp.net Mvc 3,Url Routing,Asp.net Routing,假设我有一个名为category的控制器,它有一个操作方法,索引以id为参数 因此,URL如下所示:category/Index/foo。正如您所看到的,索引段似乎并不正确。这样的URL:category/foo将更具可读性和可理解性 就像这样,这些人使用:问题/857344 如何实现这样的URL。在我的路由中,我为所有三个设置了默认值:controller、action和id。但是,当我尝试访问category/foo时,我得到了“404-resource not find” 您可以映射它的外

假设我有一个名为category的控制器,它有一个操作方法,索引以id为参数

因此,URL如下所示:category/Index/foo。正如您所看到的,索引段似乎并不正确。这样的URL:category/foo将更具可读性和可理解性

就像这样,这些人使用:问题/857344

如何实现这样的URL。在我的路由中,我为所有三个设置了默认值:controller、action和id。但是,当我尝试访问category/foo时,我得到了“404-resource not find”

您可以映射它的外观,然后指定操作


还要确保将其放在默认路由之前

在这种情况下,我将如何使用Html.ActionLink?当前,当我使用
@Html.ActionLink(“Category”,new{id=“22”,title=“something”})
时,它被转换为
,我认为您需要在新的{}中指定控制器和操作。同样在{}尝试之后,最后一个参数为null,我无法让它工作……我尝试了
Html.ActionLink(“试用”,null,“类别”,new{id=model.id,title=“something”)
不,对不起,你的操作链接应该像@Html.ActionLink(“试用”,“索引”,“类别”,new{id=1},null),例如,null在末尾。它将知道如何将您路由到/category/id,因为该路由位于全局路径中
routes.MapRoute(
               "Category/{id}",
               new { controller = "Category", action = "Index", id = UrlParameter.Optional } // Parameter defaults
               );