2010-04-26 77 views
0

我一直試圖讓this工作。這基本上是某種MVC頁面在webforms cms(umbraco)中工作的一種方式,有人在我之前嘗試過,並且遇到了與MVC2.0相關的問題(see here),我已經閱讀了帖子,做了那裏發佈的內容,但是使用了or沒有這些代碼,我似乎陷入了另一個問題。在asp.net中定製的httphandler無法獲取請求查詢字符串?

好像,如果我叫一個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本身。

回答

1

沒有時間進行調查,但在將網站複製到不同位置後,使用大量web.config更改(與此錯誤無關,但計算出其他內容),此錯誤似乎已解決。所以它不再是一個問題,但我不知道究竟是什麼使這個工作再次。

在一個側面說明

ih.ProcessRequest(httpContext); 

應該已經

ih.ProcessRequest(HttpContext.Current); 
相關問題