使用Url.Action生成完全合格的anchor
Use Url.Action to generate fully qualified anchor
我正在使用 Url.Action 在我的应用程序发送的电子邮件(使用邮政 MVC 框架)中生成 link,但是,生成的 link 是显示 "localhost" 名称,而不是域名。
我正在使用以下代码:
@Url.Action("AlterarSenha", "Account", null, this.Request.Url.Scheme)
结果如下:
http://localhost/Account/AlterarSenha
之后,我尝试了以下代码:
@Url.Action("AlterarSenha", "Account", null, this.Request.Url.Scheme, Request.ServerVariables["HTTP_HOST"])
我得到了相同的结果。
如何使用我的域名获得 link:
http://www.servicili.com/Account/AlterarSenha
假设您想要在 URL 中使用您的域名,即使应用程序在本地主机上运行,您也可以使用 Url.Action
:
的重载
public virtual string Action(
string actionName,
string controllerName,
RouteValueDictionary routeValues,
string protocol,
string hostName
)
并将您的域名传递为 hostName
。
https://msdn.microsoft.com/en-us/library/system.web.mvc.urlhelper.action(v=vs.118).aspx
如果您的本地服务器使用端口 80,您可以使用
Url.Action("AlterarSenha", "Account",null, null, "www.servicili.com");
结果是
http://www.servicili.com/Account/AlterarSenha
如果您的项目使用任何其他端口(如 123),结果将为
http://www.servicili.com:123/Account/AlterarSenha
您也可以将协议设置为 https 它不会添加任何端口
Url.Action("AlterarSenha", "Account",null, "https", "www.servicili.com");
结果是
https://www.servicili.com/Account/AlterarSenha
我正在使用 Url.Action 在我的应用程序发送的电子邮件(使用邮政 MVC 框架)中生成 link,但是,生成的 link 是显示 "localhost" 名称,而不是域名。
我正在使用以下代码:
@Url.Action("AlterarSenha", "Account", null, this.Request.Url.Scheme)
结果如下:
http://localhost/Account/AlterarSenha
之后,我尝试了以下代码:
@Url.Action("AlterarSenha", "Account", null, this.Request.Url.Scheme, Request.ServerVariables["HTTP_HOST"])
我得到了相同的结果。
如何使用我的域名获得 link:
http://www.servicili.com/Account/AlterarSenha
假设您想要在 URL 中使用您的域名,即使应用程序在本地主机上运行,您也可以使用 Url.Action
:
public virtual string Action(
string actionName,
string controllerName,
RouteValueDictionary routeValues,
string protocol,
string hostName
)
并将您的域名传递为 hostName
。
https://msdn.microsoft.com/en-us/library/system.web.mvc.urlhelper.action(v=vs.118).aspx
如果您的本地服务器使用端口 80,您可以使用
Url.Action("AlterarSenha", "Account",null, null, "www.servicili.com");
结果是
http://www.servicili.com/Account/AlterarSenha
如果您的项目使用任何其他端口(如 123),结果将为
http://www.servicili.com:123/Account/AlterarSenha
您也可以将协议设置为 https 它不会添加任何端口
Url.Action("AlterarSenha", "Account",null, "https", "www.servicili.com");
结果是
https://www.servicili.com/Account/AlterarSenha