Asp.net mvc Url.RouteUrl()和;MVC3中的Url.Action()

Asp.net mvc Url.RouteUrl()和;MVC3中的Url.Action(),asp.net-mvc,asp.net-mvc-3,asp.net-mvc-routing,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc Routing,我正在cshtml页面中动态生成URL。 Url.RouteUrl()和Url.Action()之间有什么区别 我应该使用哪一个来生成URL&两者在实现方面有什么不同 提前感谢。RouteUrl根据路由名称生成url。如果您有多个具有类似参数的路由,操作方法可能会选择错误的路由-它根据路由定义的顺序工作。当路由具有可选参数时,可能会发生这种情况 如果要确保使用某个路由url,需要调用RouteUrl传递此路由名称。路由名称是唯一的,可以清楚地标识路由 另一个区别是,Action是特定于MVC的(

我正在cshtml页面中动态生成URL。 Url.RouteUrl()和Url.Action()之间有什么区别

我应该使用哪一个来生成URL&两者在实现方面有什么不同


提前感谢。

RouteUrl
根据路由名称生成url。如果您有多个具有类似参数的路由,
操作
方法可能会选择错误的路由-它根据路由定义的顺序工作。当路由具有可选参数时,可能会发生这种情况

如果要确保使用某个路由url,需要调用
RouteUrl
传递此路由名称。路由名称是唯一的,可以清楚地标识路由


另一个区别是,
Action
是特定于MVC的(它使用控制器和操作名称),而
RouteUrl
是通用的,可以在没有MVC的情况下使用(您可以在WebForms中使用路由)。

Url.RouteUrl
允许您按名称指定特定路由。这将强制使用该路由
Url.Action
只需选择符合条件的第一条路由。

这也意味着Url.RouteUrl在性能上优于Url.Action