【发布时间】:2010-05-11 12:57:23
【问题描述】:
在 MVC 中获取路由的 URL(相对或绝对)最简单的方法是什么?我在 SO 上看到了这段代码,但它似乎有点冗长,并且没有枚举 RouteTable。
例子:
List<string> urlList = new List<string>();
urlList.Add(GetUrl(new { controller = "Help", action = "Edit" }));
urlList.Add(GetUrl(new { controller = "Help", action = "Create" }));
urlList.Add(GetUrl(new { controller = "About", action = "Company" }));
urlList.Add(GetUrl(new { controller = "About", action = "Management" }));
与:
protected string GetUrl(object routeValues)
{
RouteValueDictionary values = new RouteValueDictionary(routeValues);
RequestContext context = new RequestContext(HttpContext, RouteData);
string url = RouteTable.Routes.GetVirtualPath(context, values).VirtualPath;
return new Uri(Request.Url, url).AbsoluteUri;
}
检查 RouteTable 并获取给定控制器和操作的 URL 的更好方法是什么?
【问题讨论】:
-
如果你在一个动作里面有 UrlAction 助手msdn.microsoft.com/en-us/library/…
标签: asp.net-mvc routes