1
ルーティングサイトを持つASP.net 4.0で作業していますが、MVCアーキテクチャにはありません。 ここで大きな問題があります。つまり、ルーティングを通じてハンドラファイルを呼び出すことができません。asp.net 4.0での.ashxハンドラの呼び出し方法ルーティング
私はそれが
Type 'Captcha' does not inherit from 'System.Web.UI.Page'.
すなわち、エラーがスローされます。このサイトで任意のハンドラファイルを呼び出していますが、私は
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;
}
}
Global.asaxのページにこのコードを書きます
私の質問は、このサイトのハンドラファイルをどのように呼び出すことができるのですか?
このルートコードはどのような変更が必要ですか?
を使用し、それがページをcatpchaですか?あなたのルートがこのリクエストを受けており、適切な値を返していないようです –