MVC3中Url.RouteUrl()和Url.Action()之间的区别

Bik*_*iki 27 asp.net-mvc asp.net-mvc-routing asp.net-mvc-3

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

我应该使用哪一个来生成URL,两者在实现方面有什么区别?

提前致谢.

Jak*_*cki 49

RouteUrl根据路由名称生成URL.如果您有多个具有相似参数的路由,则该Action方法可能选择错误的路径 - 它基于路径定义的顺序工作.当您的路线有可选参数时,可能会发生这种情况.

如果要确保将使用某个路由URL,则需要调用RouteUrl传递此路由名称.路线名称是唯一的,并清楚地标识路线.

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


Dar*_*rov 17

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