2013-09-30 57 views
0

我的ASP.NET MVC項目中的URL生成有問題。Url.Action與特定的端口或相對

此代碼:

@Url.Action("Register", "Home", null, "https") })) 

生成絕對URL,這是大致天晴,但在我的環境我的Web服務器,這些服務器不同的端口上運行SSL比443,我懷疑之前有一個負載均衡器,該應用程序識別不同的端口,並生成指定端口的URL,例如:

https://www.example.com:449/Home/Register 

同樣的情況與

RedirectToAction("Index", "Home"); 

如何使應用程序始終使用生成的URL中的默認端口?

https://www.example.com/Home/Register 

回答

0

我已經設置了幾個測試現在,我無法在MVC4上重現此問題。我在非標準端口上運行HTTP服務器,並且Url.Action()返回沒有端口號的絕對URL。

但是,如果你真的在努力,你可以hostName parameter on Url.Action()

@Url.Action("Register", "Home", null, "https", "example.com") // or you could use Request.Url.Host possibly? 
+0

我加在https://github.com/mdymel/urltesting 樣本項目看來,Url.Action生成絕對URL,當你提供一個控制器名稱 –

+0

@MichalDymel HTTP://i.imgur。 com/Mcj7kHa.png - 我在這裏看不到問題。你在IIS7上運行這個嗎? –

+0

是的,iis7,作爲一個網站在https://www.urltesting.net:449 –