【问题标题】:What's the difference between RouteLink and ActionLink in ASP.NET MVC?ASP.NET MVC 中的 RouteLink 和 ActionLink 有什么区别?
【发布时间】:2009-05-14 18:03:54
【问题描述】:

我认为标题几乎概括了它:

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

即你什么时候使用Html.RouteLink(),什么时候在你的视图中使用Html.ActionLink()

【问题讨论】:

    标签: .net asp.net-mvc html-helper actionlink routelink


    【解决方案1】:

    Action 和 Routes 不必是一对一的关系。

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

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

    【讨论】:

    • +1 以获得精彩的博文。真的很方便。并表明有太多的可能性。 MS家伙应该只实施最快的。但人们更愿意使用花哨的 lambda 最慢的。
    • 嘿,谢谢,但我认为链接已损坏没有到达。请你再次给我链接谢谢
    【解决方案2】:

    其实这两种方法的输出是一样的,只是生成方式略有不同:

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

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

    按照您的喜好使用它们,并且它们对您的项目有意义。它们中的任何一个都没有任何优点/缺点(其他一些不匹配......)。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-03
        • 2011-05-06
        • 2023-03-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多