我刚刚在一个新的asp.net 4网络表单应用程序中添加了路由,并且我的路由表设置正常并且页面请求正常工作。
我现在想要做的是每当我需要生成一个我的seo友好Url时使用Page.GetRouteUrl方法。我开始在各个页面中实现这个,然后认为如果我在我自己的一个帮助器类中有一个方法,可能会减少代码,构建这个url(使用Page.GetRouteUrl方法)因为我可能有几个参数需要每次都针对Page.GetRouteUrl方法指定。
然而,在我的帮助类中,它不知道'Page'是什么。我想我可以从想要生成路由网址的页面传入'Page',但在某些情况下我想在另一个不知道'Page'是什么的类中构建其中一个Url,并且该场景无法将其作为参数传递(因此无法在我的帮助器类中使用Page.GetRouteUrl)。
想要在没有Page对象实例的类中使用Page.GetRouteUrl时,常规方法是什么?
答案 0 :(得分:3)
您可以将Page作为构造函数参数传递,或者这实际上是页面引用:
var page = HttpContext.Current.Handler as Page;
您可以将其强制转换为页面类型。根据您提出的请求类型,它可能并不总是页面(例如来自Web服务调用等)。
HTH。