0

我一直在努力让它发挥作用。这基本上是一种让某些 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 本身会有更多问题。

4

1 回答 1

1

没有时间调查,但是在将站点复制到不同位置后,使用大量 web.config 更改(与此错误无关,但正在解决其他问题),此错误似乎已自行解决。所以它不再是一个问题,但是我不知道究竟是什么让它再次起作用。

附带说明

ih.ProcessRequest(httpContext);

本来应该,

ih.ProcessRequest(HttpContext.Current);
于 2010-04-27T15:35:23.123 回答