4

我正在使用 Url.Action 在我的应用程序发送的电子邮件(使用 Postal MVC 框架)中生成链接,但是,生成的链接显示为“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"])

我得到了同样的结果。

如何获取与我的域的链接,例如:

http://www.servicili.com/Account/AlterarSenha
4

2 回答 2

3

假设即使应用程序在 localhost 上运行,您也想在 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

于 2015-10-30T21:38:52.983 回答
1

如果您的本地服务器使用端口 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
于 2015-10-31T00:22:22.060 回答