0
我有一個asp.net應用程序,我需要一個通用路由讓給定的醫學專業路由到給定的頁面,除了我想要路由到不同的頁面。特定URL的ASP.NET路由約束
例如,我想/專科/過敏,/專科/營養所有路線到他們目前的給定頁面。我想不出的部分是我希望URL仍然顯示/專科/泌尿外科,但泌尿科潰瘍到不同的頁面,因爲它本質上變成了它自己的子網站,其他網站不是。
我確定我需要添加一個路由約束,但我似乎無法弄清楚如何實現這一點。
我已經包含了我目前用於一般路線的所有相關代碼。
private static void AddEntityRoute(string name, string url, string path, string dir)
{
((List<string>)HttpContext.Current.Application["RouteList"]).Add(url);
RouteTable.Routes.Add(name,
new Route(url, new EntityRouteHandler(path, dir)));
}
public class EntityRouteHandler : IRouteHandler
{
string _virtualPath;
private readonly string baseDir;
public EntityRouteHandler(string virtualPath, string baseDir)
{
_virtualPath = virtualPath;
this.baseDir = baseDir;
}
public IHttpHandler GetHttpHandler(RequestContext requestContext)
{
var display = BuildManager.CreateInstanceFromVirtualPath(
_virtualPath, typeof (Page)) as IEntityDisplay;
display.FriendlyURL = baseDir + requestContext.RouteData.Values["name"];
return display;
}
}
AddEntityRoute("Specialties", "Specialties/{name}", "~/SpecialtyDisplay.aspx", "/Specialties/");