我使用System.Web.Routing有一些更好的网址,并遇到了一个问题。我需要知道处理请求的实际页面。
例如,请求以下列形式出现:
/basketball/home我需要找到处理该请求的页面,比如:
/management/default.aspx我只使用System.Web.Routing,而不使用MVC。我有一个RequestContext的句柄,它包含一些路由信息,但我看不出我需要什么。
提前谢谢。
*更新*
我能够使用Context.CurrentHandler,它给我的"ASP.management_default_aspx",不是确切的页面,而是足够得到页面名。
发布于 2009-12-09 04:06:26
我能够使用Context.CurrentHandler,它给了我"ASP.management_default_aspx",不是确切的页面,而是足够得到页面名。
发布于 2012-07-18 08:04:12
实际上,有另一种获取实际页面的简单方法:
String vPath = ((System.Web.Routing.PageRouteHandler)Page.RouteData.RouteHandler).VirtualPath
不要忘记检查Page.RouteData.RouteHandler是否为null -当您正在获取页面w/o ASP.Net路由时,但是直接的。
发布于 2009-04-06 13:28:02
您不能从当前的HttpContext对象中检索它吗?
也许是这样的:
public string GetCurrentPageName()
{
string sPath = System.Web.HttpContext.Current.Request.Url.AbsolutePath;
System.IO.FileInfo oInfo = new System.IO.FileInfo(sPath);
string sRet = oInfo.Name;
return sRet;
} 更新:
你试过这篇文章了吗?
如何:从路由构造URL
您应该能够从您构建的路由表中检索它。
https://stackoverflow.com/questions/721392
复制相似问题