我一直试图让this工作。它基本上是一种让某些MVC页面在webforms cms(umbraco)中工作的方法
有人在我面前试过并且遇到了MVC2.0 (see here)的问题,我已经阅读了帖子,做了那里宣布的内容,但无论有没有代码,我似乎都陷入了另一个问题。
似乎,如果我调用一个url,它会触发处理程序,但无法请求传递的查询字符串,变量originalPath始终为空, 例如,我称之为网址: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本身会遇到更多问题。
答案 0 :(得分:1)
没有时间进行调查,但在将网站复制到不同的位置后,使用了大量的web.config更改(与此错误无关但正在解决其他问题)此错误似乎已经解决了。所以它不再是一个问题,但我不知道究竟是什么让它再次发挥作用。
旁注
ih.ProcessRequest(httpContext);
应该是,
ih.ProcessRequest(HttpContext.Current);