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 に答える