私はこれを機能させようとしてきました。これは基本的に、特定の 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自体にはもっと問題があると思っていましたが、このような単純な問題について盲目的に自分自身を見つめているので、これについていくつかの新しい意見が欲しいです。