asp.net-mvc - MVC3 中 Url.RouteUrl() 和 Url.Action() 的区别

标签 asp.net-mvc asp.net-mvc-3 asp.net-mvc-routing

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

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

提前致谢。

最佳答案

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

如果您想确保使用某个路由 url,您需要调用 RouteUrl传递此路线名称。路线名称是唯一的,并且清楚地标识了路线。

还有一个区别是Action是 MVC 特定的(它使用 Controller 和 Action 名称),而 RouteUrl是通用的并且可以在没有 MVC 的情况下使用(您可以在 WebForms 中进行路由)。

关于asp.net-mvc - MVC3 中 Url.RouteUrl() 和 Url.Action() 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9357873/

相关文章:

ASP.Net MVC 3 : Get length in kb of an WebImage

visual-studio-2010 - MVC 3 Razor 中 @Using block 内的 HTML

c# - mvc调用api Controller PostAsJsonAsync操作方法名称获取

c# - ASP.net MVC 4 路由和可选参数意外结果

asp.net-mvc - 如何在 ASP.NET MVC 中处理空 URL

c# - 无法将类型 'System.Threading.Tasks.Task<System.Web.Mvc.ActionResult>' 隐式转换为 'System.Web.Mvc.ActionResult'

c# - 如何在其 View 中仅刷新局部 View ?

c# - 在 ASP.NET MVC 解决方案中从我的域对象重构表示代码的最佳方法是什么?

asp.net-mvc - 如何将布局页面链接到 View MVC 3

asp.net-mvc - 何时在 asp.net mvc 中使用路由规则与查询字符串参数