[英]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.