2015-07-12 94 views
2

如何避免让“/”(根路径),我想如家/索引的完整路径(如我的默认路由)?如何得到充分的默认路由的网址?

var redirectTo = htmlHelper.ViewContext.RequestContext.HttpContext.Request.Url.AbsolutePath; 
if (redirectTo.Equals("/")) 
{ 
VirtualPathData vp = RouteTable.Routes.GetVirtualPath(htmlHelper.ViewContext.RequestContext, "Default", new RouteValueDictionary(new { controller = "Admin", action = "Index" })); 
redirectTo = vp.VirtualPath; 
} 

UrlHelper u = new UrlHelper(htmlHelper.ViewContext.RequestContext);; 
    redirectTo = u.RouteUrl("Default", ((Route)RouteTable.Routes["Default"]).Defaults); 

但所有上述不工作。谢谢!

+0

没有看到你的路由表,很难说是什么问题(以及为何要使用这样的代码,而不是Url.Action和类似帮手... –

+0

你是问你如何让路由到如果只工作我们指明完整路径(家庭/索引),而不是仅仅根路径(“/”)? –

回答

2

此代码可以以被用来获得在一般情况下的默认路径:

var route = ((Route)RouteTable.Routes["Default"]).Defaults; 
var url = string.Format("/{0}/{1}", route["controller"], route["action"]); 

在特殊RouteMaps格式字符串(/ {0}/{1})应更改的情况下。