Answers:
动作和路线不必具有1:1关系。
ActionLink将根据操作名称使用第一个匹配的路由生成URL,以到达该操作。
RouteLink将生成指向由名称或路由值确定的特定路由的URL。
实际上,两种方法的输出是相同的,但是生成方式略有不同:
Html.ActionLink()
使您可以轻松快速地生成ActionLink,并可以基本控制呈现的内容。如果您没有太多的路线,或者不需要提供太多或太具体的信息,那么就可以完成工作。
该Html.RouteLink()
方法采用略有不同的参数,从而使您可以更详细地控制事物的处理方式。当我的场景稍微复杂些或路由结构更详细时,我倾向于使用此方法。
一个例子是最近的一个项目,我(为了灵活性)宁愿有几条不同的路线,这些路线都非常简单,而不是一条复杂的路线,它需要很多信息。因此,对于同一控制器,我最终得到了四或五个路由,所有路由都指定了默认操作。我主要使用该RouteLink
版本,因为当我指定路由名称时,会自动输入默认参数。
随心所欲使用它们,并使它们对您的项目有意义。它们中的任何一个实际上都没有上行/下行(这是其他任何一个都不匹配的...)。
除了此处给出的其他答案之外,RouteLink更快一些,并且永远不会匹配错误的路由,因为您更改了路由表。