2013-02-28 43 views
0

我想向當前註冊的用戶發送激活郵件。在郵件正文中,我需要發送一個鏈接,如http://example.com/account/activation?username=d&email=g.Now,用於在本地機器上進行調試,我手動編寫它as localhost:30995/account/activation?username = d & email = g。但是,當我的端口號改變時,我需要重寫它。 我試過another question 在這個網站上,但是,編譯器給出的錯誤如url.action不存在。在asp.net mvc控制器中創建一個url 4

請給我新鮮的解決方案,因爲我對這個解決方案感到困惑。

回答

3

使用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

簡而言之,這會將您在您的應用上託管的任何域放在您的網址前面;然後您可以根據需要多次更改您的主機名/端口號/域名。您的鏈接始終指向它們發起的主機。這應該可以解決你面臨的問題。

0

嘗試使用IIS/IIS-Express而不是使用Visual Studio附帶的Casinni Web服務器。

您可以添加綁定以擁有正確的URL(當然包含主機條目)。

這將避免鏈接中的端口號。

+0

先生,我想要一些永久的解決方案,如果我更改主機名也適用。 – 2013-02-28 08:48:25

相關問題