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

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

提前致谢。

最佳答案

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

如果要确保使用特定的路由网址,则需要通过传递此路由名称来调用RouteUrl。路线名称是唯一的,可以清楚地标识一条路线。

另一个不同之处是Action是MVC特定的(它使用 Controller 和操作名称),而RouteUrl是通用的并且可以在没有MVC的情况下使用(您可以在WebForms中进行路由)。

10-06 02:47