RouteLink和ASP.NET MVC中的ActionLink有什么区别?

我认为这个标题几乎总结了一下:

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

即什么时候使用Html.RouteLink() ,什么时候在View中使用Html.ActionLink()

行动和路线不一定有1:1的关系。

ActionLink将根据操作名称使用第一个匹配的路由来生成URL以获取操作。

RouteLink将生成一个到特定路由的URL,通过名称或路由值来确定。

实际上,两种方法的输出是一样的,但是产生的方式略有不同:

Html.ActionLink()使生成ActionLinks变得很容易,并且可以让你基本控制渲染的内容。 如果你没有太多的路线,或者不需要提供太多或者太具体的信息,那么这样做就可以做得很好。

Html.RouteLink()方法的参数略有不同,因此可以更详细地控制事物的处理方式。 当我的情况稍微复杂一点时,或者当我有更详细的路由结构时,我倾向于使用这种方法。
一个例子就是最近的一个项目,我(为了灵活性)宁愿有几条不同的路线,而这些路线都非常简单,而不是一个复杂的路线,这将允许大量的信息。 因此,我最终得到了四个或五个路由为同一个控制器,所有与默认行动指定。 我主要使用RouteLink版本,因为当我指定路由名称时,默认参数是自动input的。

按照你的感觉使用它们,因为它们对你的项目有意义。 他们中的任何一个都没有任何上升/下降(这与其他的不匹配)。

除了这里给出的其他答案外,RouteLink速度还要快一些,因为改变了路由表,所以不能匹配错误的路由。

RouteLink接受一个路由的名字,所以如果你的路由名字是可靠的并且是相当唯一的,那么即使被使用的动作名称改变,这也是一样的。 ActionLink链接到特定控制器的特定操作。 我用我的观点,这取决于我以后什么样的链接!