繁体   English   中英

asp.net中的自定义httphandler无法获取请求查询字符串?

[英]custom httphandler in asp.net cannot get request querystring?

我一直试图让这个工作。 这基本上是让某些MVC页面在webforms cms(umbraco)中工作的一种方法

有人在我之前尝试过它,并遇到了MVC2.0的问题(请参阅此处) ,我已经阅读了帖子,做了在那里宣布的事情,但是无论有没有该代码,我似乎都陷入了另一件事。

似乎,如果我调用一个url,它将触发处理程序,但无法请求传递的查询字符串,变量originalPath始终为空,例如,我将此URL称为: http:// localhost:8080 / mvc.ashx?mvcRoute = / home / RSVPForm处理程序应该获取mvcRoute,但始终为空。 从而将其重写为简单的/,然后返回找不到资源的错误。

这是我现在使用的代码:

public void ProcessRequest(HttpContext httpContext)
{
        string originalPath = httpContext.Request.Path;
        string newPath = httpContext.Request.QueryString["mvcRoute"];
        if (string.IsNullOrEmpty(newPath))
            newPath = "/";

        HttpContext.Current.RewritePath(newPath, false);
        IHttpHandler ih = (IHttpHandler)new MvcHttpHandler();
        ih.ProcessRequest(httpContext);
        HttpContext.Current.RewritePath(originalPath, false);
}

我想对此提出一些新的建议,因为我对这样一个简单的问题视而不见,而我认为mvc本身会有更多的问题。

没有时间进行调查,但是在将站点复制到其他位置之后,使用了许多web.config更改(与该错误无关,但是正在弄清楚其他事情),该错误似乎已经解决了。 所以它不再是一个问题,但是我不知道到底是什么使它再次起作用。

在旁注

ih.ProcessRequest(httpContext);

本来应该,

ih.ProcessRequest(HttpContext.Current);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM