在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