如何在MVC中获取站点的基本URL

时间:2014-07-05 10:29:14

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

我想向用户发送一封电子邮件,他可以点击链接转移到我的网站。我不想在我的电子邮件模板中对网址进行硬编码。我希望这种动态在某种意义上说它会发送相关网址的环境。喜欢如果我在开发环境中,它会发送类似http://localhost:port的内容,或者在生产环境中发送实际的网站网址。 http://www.domain.com

我只需要知道如何在MVC Action中将其保存在DynamicViewBag中。有什么建议吗?

2 个答案:

答案 0 :(得分:14)

您可以使用Request对象的属性,例如

var request = HttpContext.Current.Request
var address = string.Format("{0}://{1}", request.Url.Scheme, request.Url.Authority);

答案 1 :(得分:9)

你可以这样做:

var dynamicViewBag = new DynamicViewBag();
dynamicViewBag.AddValue("BaseUrl", Request.Url.GetLeftPart(UriPartial.Authority));