我认为标题已经概括了这一点:

有什么区别 RouteLink()ActionLink() 在 ASP.NET MVC 中?

IE。你什么时候用 Html.RouteLink() 你什么时候使用 Html.ActionLink() 在你看来?

有帮助吗?

解决方案

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

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

RouteLink 将生成由名称或路由值确定的特定路由的 URL。

其他提示

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

Html.ActionLink() 使您可以轻松快速地生成 ActionLink,并且可以让您对渲染内容进行基本控制。如果您没有太多路线,或者不需要提供太多或太具体的信息,那么这将很好地完成工作。

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

根据您的喜好以及对您的项目有意义的方式使用它们。它们中的任何一个实际上都没有优点/缺点(与其他一些不匹配......)。

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

RouteLink 采用路由名称,因此如果您的路由名称可靠且相当唯一,那么即使要使用的操作名称发生更改,路由名称也将是相同的。ActionLink 改为链接到特定控制器的特定操作。我在我的观点中使用这两种方法,具体取决于我想要什么样的链接!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top