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

Guy*_*Guy 116 .net asp.net-mvc html-helper actionlink routelink

我认为标题几乎总结了:

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

即你何时使用Html.RouteLink(),何时Html.ActionLink()在你的视图中使用?

Cha*_*ran 76

动作和路线不必具有1:1的关系.

ActionLink将生成URL以使用第一个匹配的路径按操作名称获取操作.

RouteLink将生成指向由名称或路由值确定的特定路由的URL.

  • 我们可以举例吗? (5认同)

Tom*_*han 66

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

Html.ActionLink()这使得快速生成ActionLinks变得容易,并且可以基本控制渲染的内容.如果您没有太多路线,或者不需要提供太多或太具体的信息,这将完成工作.

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

按照您的意愿使用它们,因为它们对您的项目有意义.他们中的任何一个都没有上升/下降(其他一些都不匹配......).


Cra*_*ntz 19

除了这里给出的其他答案之外,RouteLink更快一点,并且由于您更改了路由表,因此无法匹配错误的路由.


Sim*_*ele 12

RouteLink采用路由的名称,因此如果您的路由名称可靠且相当独特,那么即使要使用的操作名称发生更改,这也是相同的.ActionLink链接到特定控制器的特定操作.我在我的视图中使用两者,取决于我之后的链接类型!