Я пытался заставить эту работать. Это в основном способ заставить определенные страницы MVC работать в веб-формах 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.