什么';ASP.NET MVC中RouteLink和ActionLink的区别是什么?

什么';ASP.NET MVC中RouteLink和ActionLink的区别是什么?,.net,asp.net-mvc,html-helper,actionlink,routelink,.net,Asp.net Mvc,Html Helper,Actionlink,Routelink,我认为这个标题大致概括了这一点: ASP.NET MVC中的RouteLink()和ActionLink()之间有什么区别 i、 e.您何时在视图中使用Html.RouteLink()以及何时使用Html.ActionLink()?RouteLink采用路由名称,因此,如果路由名称可靠且非常唯一,则即使要使用的操作名称发生更改,也将保持相同。ActionLink链接到特定控制器的特定操作。我在我的视图中都使用这两种链接,这取决于我想要的链接类型 操作和路由不必具有1:1的关系 ActionLin

我认为这个标题大致概括了这一点:

ASP.NET MVC中的
RouteLink()
ActionLink()
之间有什么区别


i、 e.您何时在视图中使用
Html.RouteLink()
以及何时使用
Html.ActionLink()

RouteLink采用路由名称,因此,如果路由名称可靠且非常唯一,则即使要使用的操作名称发生更改,也将保持相同。ActionLink链接到特定控制器的特定操作。我在我的视图中都使用这两种链接,这取决于我想要的链接类型

操作和路由不必具有1:1的关系

ActionLink将生成URL,以使用按操作名称匹配的第一个路由访问操作


RouteLink将生成一个URL,指向由名称或路由值确定的特定路由。

实际上,这两种方法的输出是相同的,但生成方式略有不同:

使快速生成ActionLink变得容易,并使您能够基本控制渲染内容。如果您没有太多的路线,或者不需要提供太多或太具体的信息,这将很好地完成工作

该方法采用稍有不同的参数,因此可以更详细地控制处理方式。当我的场景稍微复杂一点,或者当我有更详细的路线结构时,我倾向于使用这种方法。
一个例子是最近的一个项目,在这个项目中,我(为了灵活性)选择了几个不同的路线,这些路线都非常简单,而不是一个复杂的路线,可以容纳大量信息。因此,我最终为同一个控制器提供了四到五条路由,所有这些路由都指定了一个默认操作。我主要使用
RouteLink
版本,因为当我指定路由名称时,默认参数是自动输入的


根据您的感觉使用它们,并根据它们对您的项目的意义使用它们。这两种方法都没有好处/坏处(这是其他方法无法比拟的…。

除了这里给出的其他答案外,RouteLink的速度要快一点,而且永远不会匹配错误的路线,因为您更改了路由表。

+1。真方便。显示了太多的可能性。微软的人应该只实现最快的。但是人们更喜欢用最慢的lambda。嘿,谢谢,但是我想链接断了,我没联系到。请再次向我提供链接,谢谢Mone Chiaretta在这里做了一些性能分析: