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

尝试使用 IIS / IIS-Express 而不是 Visual Studio 附带的 Casinni Web 服务器。

您可以添加绑定以获得正确的 URL(当然还有主机条目)。

这将避免链接中的端口号。

于 2013-02-28T08:45:14.417 回答