public string GetRouteUrl(string routeName, string physicalFile, params object[] parames)
{
RouteBase routeBase = RouteTable.Routes[routeName]; // GetRouteData(new HttpContextWrapper(HttpContext.Current));
if (routeBase != null)
{
Route route = (Route)routeBase;
string url = route.Url;
MatchCollection matchCollection = Regex.Matches(url, @"\w*\{name\d+\}\w*");
string[] names = physicalFile.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < matchCollection.Count; i++)
{
url = Regex.Replace(url, @"\w*\{name" + i + @"\d*\}\w*", names[i]);
}
url = Regex.Replace(url, @"\w*\{param\}\w*", parames[0].ToString());
return "/"+url;
}
return null;
}
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapPageRoute("Default", "", "~/Index.aspx");
routes.MapPageRoute(
"User",
"{name0}/{name1}",
"~/view/{name0}/{name1}.aspx"
, false);
routes.MapPageRoute(
"User2",
"{name0}/{name1}/{param}",
"~/view/{name0}/{name1}.aspx"
, false);
}