我认为标题几乎概括了它:
RouteLink()
和ActionLink()
ASP.NET MVC有什么区别?
即你什么时候使用Html.RouteLink()
,什么时候Html.ActionLink()
在你的视图中使用?
我认为标题几乎概括了它:
RouteLink()
和ActionLink()
ASP.NET MVC有什么区别?
即你什么时候使用Html.RouteLink()
,什么时候Html.ActionLink()
在你的视图中使用?
Action 和 Routes 不必是 1:1 的关系。
ActionLink 将生成 URL 以使用操作名称的第一个匹配路由到达操作。
RouteLink 将生成一个指向由名称或路由值确定的特定路由的 URL。
实际上,这两种方法的输出是相同的,但生成方式略有不同:
Html.ActionLink()
可以轻松快速地生成 ActionLink,并且可以让您对渲染的内容进行基本控制。如果您没有太多路线,或者不需要提供太多或太具体的信息,这将很好地完成工作。
该Html.RouteLink()
方法采用略有不同的参数,因此可以让您更详细地控制事情的处理方式。当我的场景稍微复杂一点,或者当我有更详细的路线结构时,我倾向于使用这种方法。
一个例子是最近的一个项目,我(为了灵活性)宁愿有几条不同的路线,它们都很简单,而不是一条允许大量信息的复杂路线。因此,我最终为同一个控制器创建了四到五个路由,所有路由都指定了默认操作。我主要使用RouteLink
版本,因为当我指定路由名称时,会自动输入默认参数。
随心所欲地使用它们,并且它们对您的项目有意义。它们中的任何一个都没有任何优点/缺点(其他一些不匹配......)。
除了此处给出的其他答案之外,RouteLink 更快一些,并且永远无法匹配错误的路由,因为您更改了路由表。
RouteLink 采用路线的名称,因此如果您的路线名称可靠且相当独特,那么即使要使用的操作名称发生更改,这也是相同的。ActionLink 链接到特定控制器的特定操作。我在我的观点中同时使用这两种方法,具体取决于我所追求的链接类型!