【问题标题】:Creating a url in controller in asp.net mvc 4在asp.net mvc 4的控制器中创建一个url
【发布时间】:2013-02-28 08:42:24
【问题描述】:

我正在尝试向当前注册的用户发送激活邮件。在邮件正文中,我需要发送http://example.com/account/activation?username=d&email=g.Now之类的链接,为了在本地机器上调试,我手动将其写为localhost:30995/account/activation?用户名=d&email=g。但是,当我的端口号改变时,我需要重写它。 我试过another question 在这个网站上,但是,编译器给出了 url.action 不存在之类的错误。

请给我新的解决方案,因为我对那个解决方案感到困惑。

【问题讨论】:

    标签: asp.net asp.net-mvc asp.net-mvc-3 razor asp.net-mvc-4


    【解决方案1】:

    使用带有协议参数的Url.Action 重载来生成您的网址:

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

    这会生成一个绝对的 URL,而不是一个相对的。协议可以是“http”或“https”。因此,这将在您的本地计算机上返回 http://localhost:XXXXX/account/activation?username=d&email=g,在生产环境中返回 http://example.com/account/activation?username=d&email=g

    简而言之,这会将您托管应用程序的任何域粘贴在您的 URL 前面;然后,您可以根据需要多次更改您的主机名/端口号/域名。您的链接将始终指向它们来源的主机。这应该可以解决您面临的问题。

    【讨论】:

      【解决方案2】:

      尝试使用 IIS / IIS-Express 代替 Visual Studio 附带的 Casinni Web 服务器。

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

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

      【讨论】:

      • 先生,如果我更改主机名,我想要一些永久的解决方案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-21
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      • 1970-01-01
      相关资源
      最近更新 更多