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プロパティの出力を変更するために何ができますか? (私は、このプロパティはセッターを持っていないことを言及する必要があります)
この問題の解決策をお探しですか? – Piedone
@Piedone、申し訳ありませんが、私たちは最終的に何を思い出しません。これは古い仕事であり、最終的な解決策が何であるかを知るためには、ソースコードへのアクセスがより長いことがわかっています。とにかくありがとう。 –
残念ながら私はまったく同じ問題を抱えています:http://stackoverflow.com/questions/23327413/asp-net-mvc-app-routes-breaking-when-rewritten-through-iis-url-rewrite – Piedone