2013-09-30 25 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 –