2009-07-21 10 views
2

MVCのBeginFormヘルパーは、フォームのアクションを作成するときにRequest.RawUrlプロパティを使用します。私はこれが一般的には問題ないと確信していますが、それは私にとって問題を引き起こしています。どのようにしてRequest.RawUrlプロパティを変更できますか?

私は自分のサイトでURLリライタを使用しています。 global.asaxでは、私はリライタの動作をまっすぐにする次のコードを持っています。

protected void Application_BeginRequest(object sender, EventArgs e) 
{ 
    var app = sender as HttpApplication; 
    if (app != null) 
    if (app.Request.AppRelativeCurrentExecutionFilePath.Contains("~/rewritten.mvc")) 
     app.Context.RewritePath(app.Request.Url.PathAndQuery.Replace("/rewritten.mvc", "")); 
} 

問題はBeginFormヘルパーは、それが間違っているターゲットURLに埋め込まれた「/rewritten.mvc」で終わるアクションを書き込むときapp.RewritePathはそうRawUrlプロパティには影響しないということです。

私はBeginForm()メソッドでコントローラとアクションを特に対象とするためにオーバーロードを使用できますが、これには独自の欠点があり、私の場合はそれを実行できません。

私のApplication_BeginRequestメソッドでは、RawUrlプロパティの出力を変更するために何ができますか? (私は、このプロパティはセッターを持っていないことを言及する必要があります)

+0

この問題の解決策をお探しですか? – Piedone

+0

@Piedone、申し訳ありませんが、私たちは最終的に何を思い出しません。これは古い仕事であり、最終的な解決策が何であるかを知るためには、ソースコードへのアクセスがより長いことがわかっています。とにかくありがとう。 –

+0

残念ながら私はまったく同じ問題を抱えています:http://stackoverflow.com/questions/23327413/asp-net-mvc-app-routes-breaking-when-rewritten-through-iis-url-rewrite – Piedone

答えて

1

RawUrlプロパティを変更することはできません。外部の書き換えを使用する代わりに、MVCに組み込まれたルーティング機能を使用してみましたか?

関連する問題