我正在我的cshtml页面中动态生成URL。 Url.RouteUrl()& Url.Action()?
我应该使用哪一个来生成网址&两者在实施方面有什么不同?
提前致谢。
答案 0 :(得分:48)
RouteUrl
根据路由名称生成了网址。如果您有多个具有相似参数的路由,Action
方法可能选错了 - 它根据路由定义的顺序工作。当您的路线有可选参数时,可能会发生这种情况。
如果您想确保使用某个路由网址,则需要调用RouteUrl
传递此路由名称。路线名称是唯一的,并清楚地标识路线。
另一个区别是Action
是MVC特定的(它使用控制器和动作名称),而RouteUrl
是通用的,并且可以在没有MVC的情况下使用(您可以在WebForms中使用路由)。 / p>
答案 1 :(得分:17)
Url.RouteUrl
允许您按名称指定特定路线。这将强制该路线的使用。 Url.Action
只会选择符合条件的第一条路线。