0

現在登録されているユーザーにアクティベーションメールを送信しようとしています。メール本文に、ローカルマシンでデバッグするためにhttp://example.com/account/activation?username=d&email=g.Nowのようなリンクを送信する必要があります。手動でlocalhost:30995 / account / Activation?username = d&email=gと記述します。しかし、ポート番号が変わったら、書き直す必要があります。このウェブサイトで別の質問を試し ましたが、コンパイラがurl.actionが存在しないなどのエラーを出します。

私はその解決策と混同しているので、私に新鮮な解決策を教えてください。

4

2 に答える 2

3

Url.Actionプロトコルパラメータを使用してURLを生成するオーバーロードを使用します。

Url.Action("Activation", "Account", new { username = "d", email = "g" }, "http")

これにより、相対URLではなく絶対URLが生成されます。プロトコルは「http」または「https」のいずれかです。http://localhost:XXXXX/account/activation?username=d&email=gしたがって、これはローカルマシンとhttp://example.com/account/activation?username=d&email=g本番環境に戻ります。

つまり、これにより、アプリをホストしているドメインがURLの前に固定されます。その後、ホスト名/ポート番号/ドメイン名を何度でも変更できます。リンクは常に、元のホストを指します。それはあなたが直面している問題を解決するはずです。

于 2013-02-28T09:22:09.107 に答える
0

VisualStudioに付属しているCasinniWebサーバーの代わりに、IIS/IIS-Expressを使用してみてください。

バインディングを追加して、正しいURLを使用することができます(もちろんホストエントリを使用)。

これにより、リンクのポート番号が回避されます。

于 2013-02-28T08:45:14.417 に答える