在MVC中獲取URL(相對或絕對)到路由的最簡單方法是什麼?我在這裏看到了這個代碼,但它看起來有點冗長,並沒有枚舉RouteTable。ASP.NET MVC:路由到URL
例子:
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並獲得一個給定的控制器和動作網址?
如果你是一個動作內有UrlAction幫手http://msdn.microsoft.com/en-us/library/system.web.mvc.urlhelper.action.aspx – R0MANARMY 2010-05-11 04:33:33