3

聞きたいことがあります。asp.net core 2.0 を使用して単純なメール送信者を作成し、メール認証のように受信者を Web ページにリダイレクトするリンクを含むメールを送信したいのですが、コールバック URL の作成方法がわかりません。

私が使う :

<a href='https://"+Request.Scheme+"/Users/Userrole'>Click Here</a>

しかし、電子メールのリンクは http:/Users/Userrole でした

Localhost:443xx/User/Userrole を使用するのはエレガントではなく、ローカル コンピューターで実行すると機能しないため、ページへの動的 URL を取得する方法を教えてください。

編集、このアクションを実行する非常に簡単な方法は <a href='https://"+this.Request.Host+"/Users/Userrole'>Click Here</a>

この回答をくれた FrustatedDeveloper に感謝します

4

1 に答える 1

2

Asp.Net コア

Asp.Net Core では、次を使用して URL を取得できます。

var url = $"{Context.Request.Scheme}://{Context.Request.Host}{Context.Request.Path}";
var link = $"<a href='{url}'>Click here</a>";

クエリ文字列を取得する必要がある場合は、次を使用できます。

var queryString = Context.Host.QueryString;

次のリソースを確認してください: HttpRequest

含める場合はusing Microsoft.AspNetCore.Http.Extensions、次も使用できます。

var url = httpContext.Request.GetEncodedUrl();

または

var url = httpContext.Request.GetDisplayUrl();

元の回答 (Asp.Net/MVC フレームワーク)

動的 URL を作成するには、ドメインとスキーム (http または https を使用)にUrlHelper @Url.Action("ActionName", "ControllerName")を使用できます。Request.Url.AuthorityRequest.Url.Scheme

var url = $"{Request.Url.Scheme}://{Request.Url.Authority}{@Url.Action("UserRole","Users")}";
var link = $"<a href='{url}'>Click here</a>";

サイトにドメインがあると仮定すると、www.example.com次のような URL が生成されます。

https://www.example.com/users/userrole

上記では、文字列補間を使用して文字列変数を結合しています。

于 2019-09-25T09:58:12.457 に答える