電子メールに含まれる MVC アプリケーションの適切な URL を生成するにはどうすればよいですか?
これは、コントローラー/アクションとは別の登録システム用です。基本的に、コントローラーでアクションを起動するために電子メール検証を送信したいと考えています。URL をハードコーディングしたくありません。ビューの Url プロパティのようなものが必要です。
電子メールに含まれる MVC アプリケーションの適切な URL を生成するにはどうすればよいですか?
これは、コントローラー/アクションとは別の登録システム用です。基本的に、コントローラーでアクションを起動するために電子メール検証を送信したいと考えています。URL をハードコーディングしたくありません。ビューの Url プロパティのようなものが必要です。
コントローラーでは、UrlHelper は単に「Url」と呼ばれます。
void Index() {
string s = this.Url.Action("Index", "Controller");
}
「this」は不要ですが、この URL 変数がどこから来ているかがわかります
私が使用した:
Html.BuildUrlFromExpression<AccountController>(c=>c.Confirm(Model.confirmedGUID.Value))
これは HTMLHelper の一部であるため (MVC Futures にあると思います)、HTMLHelper のインスタンスをサービス層に渡す必要があるかもしれません。これをビューで直接使用して、電子メールにレンダリングします。これにより絶対 URL が得られ、ドメイン ( http://www.mysite.com ) を構成ファイルに保存し、URL の前に追加します。
質問を正しく読んでいる場合は、MVC コードの外側でコントローラー/アクションを実行する必要があります。その場合、コントローラー クラスにアクセスできず、リフレクションを使用して名前を取得しない限り、アプリケーション構成またはそのような場所で URL を構成するだけで済みます。
おそらく、URL をアプリケーションの構成の一部にする必要があります。
Web アプリケーションの Server プロパティなどを使用して何かを実行できることはわかっていますが、アプリケーションは、その IP またはドメイン名がプロキシまたはロード バランサーの背後に隠されている可能性があるため、外部から到達可能かどうかを知りません。