リクエストリファラーがリクエスト自体と異なる起源を持つ場合、ビュー内のすべてのURLを絶対URLとしてレンダリングします。だから、ビューアページを変更せずにすべてのコンテンツとアクションのURLを絶対URLとしてレンダリングします。
サイトhttp://www.hostsite.com
は、次のビューページ
@using (Ajax.BeginForm("Save", new AjaxOptions {}))
{
@Html.ActionLink("More..", "More")
<img src="~/Content/img.jpg" />
<input type="submit" value="Save" />
}
が
として<form action="http://www.example.com/controller/Save" data-ajax="true" id="form0" method="post">
<a href="http://www.example.com/controller/More">More...</a>
<img src="http://www.example.com/Content/img.jpg" />
<input type="submit" value="Save" />
</form>
にHTMLで「〜/」のURLの使用もすべき注意をレンダリングする必要がありhttp://www.example.com/controller/action
からコンテンツをプルページを持っている場合絶対に修正する。
可能な限り、余分なヘルパーを作成する代わりに、ベースURL生成コードをオーバーライドすることでこれを実現したいと考えています。
mvcのURL出力機能をオーバーライドすることはできますが、カスタムヘルパーのように、ビューページ自体の1つの詳細を変更する必要はありませんか?もしそうなら、私はこの出力動作をオーバーライドするために使用できるフックポイントはどこですか?
特に「ヘルパー」メソッドを作成したくありません。私は、ViewEngineとそれに関連するViewPageのようなクラスの振る舞いをオーバーライドしたいと思います。 –
ビューエンジンはビューのレンダリングを担当し、ビューのパスをオーバーライドできます。ビューの物理的な位置を変更することができます。つまり、仮想ファイルの場所、たとえば物理的なファイルストレージではなくDLL 。しかし、あなたが達成しようとしている動作は、ビューエンジンの責任ではないものです。コントロールのレンダリング方法と、コントロール用に生成されるHTMLは、ヘルパークラスによって処理され、管理されます。したがって、同じものを無効にする必要があります。 –
「
」はヘルパーによってレンダリングされません –