アクションの完全な URL を取得する組み込みの方法はありますか?
GetFullUrl("Action", "Controller")
のようなものが返されるものを探していますhttp://www.fred.com/Controller/Action
。
私がこれを探している理由は、生成される自動メールに URL がハードコーディングされるのを避け、URL が常にサイトの現在の場所を基準にして生成されるようにするためです。
ベストアンサー1
Url.Action には、希望するプロトコル (http、https など) を引数として受け取るオーバーロードがあります。これを指定すると、完全修飾 URL が取得されます。
アクション メソッドで現在のリクエストのプロトコルを使用する例を次に示します。
var fullUrl = this.Url.Action("Edit", "Posts", new { id = 5 }, this.Request.Url.Scheme);
HtmlHelper (@Html) には、Razor でアンカー要素を作成するために使用できる ActionLink メソッドのオーバーロードもありますが、hostName およびフラグメント パラメータも必要です。そのため、@Url.Action を再度使用することを選択します。
<span>
Copy
<a href='@Url.Action("About", "Home", null, Request.Url.Scheme)'>this link</a>
and post it anywhere on the internet!
</span>