我认为标题几乎总结了它:
ASP.NET MVC中RouteLink()
和ActionLink()
之间有什么区别?
即。您何时使用Html.RouteLink()
,何时在视图中使用Html.ActionLink()
?
答案 0 :(得分:76)
行动和路线不必具有1:1的关系。
ActionLink将根据操作名称生成使用第一个匹配路径的操作的URL。
RouteLink将生成指向由名称或路线值确定的特定路线的URL。
答案 1 :(得分:66)
实际上,两种方法的输出是相同的,但它的生成方式略有不同:
Html.ActionLink()
可以让您快速生成ActionLinks,并可以基本控制渲染的内容。如果你没有太多路线,或者不需要提供过多或过于具体的信息,那么这项工作就可以了。
Html.RouteLink()
方法采用略有不同的参数,因此可以更加详细地控制事物的处理方式。当我的场景稍微复杂一点,或者我有更详细的路线结构时,我倾向于使用这种方法
一个例子是最近的项目,其中我(为了灵活性)而是有几条不同的路线,这些路线都非常简单,而不是一个可以提供大量信息的复杂路线。因此,我最终为同一个控制器提供了四个或五个路由,所有路由都指定了默认操作。我主要使用RouteLink
版本,因为当我指定路由名称时,会自动输入默认参数。
按照您的意愿使用它们,因为它们对您的项目有意义。他们中的任何一个都没有上升/下降(其他一些人没有匹配......)。
答案 2 :(得分:19)
除了这里给出的其他答案之外,RouteLink更快一些,并且因为你改变了路由表而无法匹配错误的路由。
答案 3 :(得分:12)
RouteLink采用路由的名称,因此,如果您的路由名称可靠且相当独特,那么即使要使用的操作名称发生更改,这也是相同的。 ActionLink链接到特定控制器的特定操作。我在我的观点中使用两者,取决于我追求的链接类型!