Я работаю в ASP.net 4.0 с сайтом маршрутизации, а не в MVC Architecture.
Здесь у меня большая проблема, то есть я не могу вызвать какой-либо файл обработчика при маршрутизации.
Я пишу этот код на странице global.asax
public static void RegisterRoutes(System.Web.Routing.RouteCollection routes)
{
routes.Add(new System.Web.Routing.Route("{language}/{*page}", new CustomRouteHandler()));
}
void Application_Start(object sender, EventArgs e)
{
RegisterRoutes(System.Web.Routing.RouteTable.Routes);
}
и в классе CustomRouteHandler
public class CustomRouteHandler : IRouteHandler
{
public IHttpHandler GetHttpHandler(RequestContext requestContext)
{
string language = TemplateControlExtension.GetString(null, requestContext.RouteData.Values["language"]).ToLower();
string page = TemplateControlExtension.GetString(null, requestContext.RouteData.Values["page"]).ToLower();
if (string.IsNullOrEmpty(page))
{
HttpContext.Current.Response.Redirect("/" + language + "/default.aspx");
}
string VirtualPath = "~/" + page;
if (language != null)
{
TemplateControlExtension.Language = language;
}
return BuildManager.CreateInstanceFromVirtualPath(VirtualPath, typeof(Page)) as IHttpHandler;
}
}
Когда я вызываю любой файл обработчика на этом сайте, он выдает ошибку, т.е.
Type 'Captcha' does not inherit from 'System.Web.UI.Page'.
Мой вопрос заключается в том, как мы можем вызывать файлы обработчиков на этом сайте ??
Какая модификация хочет этот код маршрута ??