我正在cshtml页面中动态生成URL。
Url.RouteUrl()和Url.Action()有什么区别?
我应该使用哪一个来生成URL?两者在实现方面有什么区别?
提前致谢。
最佳答案
RouteUrl
根据路由名称生成URL。如果您有多个具有相似参数的路由,Action
方法可能会选择错误的方法-它基于路由定义的顺序。当您的路线具有可选参数时,可能会发生这种情况。
如果要确保使用特定的路由网址,则需要通过传递此路由名称来调用RouteUrl
。路线名称是唯一的,可以清楚地标识一条路线。
另一个不同之处是Action
是MVC特定的(它使用 Controller 和操作名称),而RouteUrl
是通用的并且可以在没有MVC的情况下使用(您可以在WebForms中进行路由)。