How to get base url of the site in MVC

asp.net-mvc, asp.net-mvc-3, asp.net-mvc-4, razor

Solution

You can do this:

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

Problem

I want to send an email to the user where he can click on link to transfer to my site. I don't want to hard code the url in my Email Templates. I want this dynamic in a sense that whatever the environment it will send the related url. Like If I am on the development environment it send something like `http://localhost:port` or in production send the actual website url. `http://www.domain.com` I just need to know how can I save it in `DynamicViewBag` in MVC Action. Any suggestion plz?

Original source

Related problems