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