Home > DeveloperSection > Forums > Asp.net mvc route based on subdomain
Tanuj Kumar

Total Post:134

Points:940
Posted on    October-07-2014 11:30 PM

 ASP.NET MVC ASP.Net  ASP.NET MVC 
Ratings:


 1 Reply(s)
 1123  View(s)
Rate this:
Is it possible to have an ASP.NET MVC route that uses subdomain information to determine its route? For example.

·         user1.domain.com goes to one place

·         user2.domain.com goes to another?


Or, can I make it so both of these go to the same controller/action with a username parameter?



Kamlakar Singh
Kamlakar Singh

Total Post:194

Points:1396
Posted on    October-07-2014 11:32 PM

You can do it by creating a new route and adding it to the routes collection in RegisterRoutes in your global.asax. Below is a very simple example of a custom Route.

public class ExampleRoute : RouteBase

        {

 

            public override RouteData GetRouteData(HttpContextBase httpContext)

            {

                var url = httpContext.Request.Headers["HOST"];

                var index = url.IndexOf(".");

 

                if (index < 0)

                    return null;

 

                var subDomain = url.Substring(0, index);

 

                if (subDomain == "user1")

                {

                    var routeData = new RouteData(this, new MvcRouteHandler());

                    routeData.Values.Add("controller", "User1");                    routeData.Values.Add("action", "Index");

 

                    return routeData;

                }

 

                if (subDomain == "user2")

                {

                    var routeData = new RouteData(this, new MvcRouteHandler());

                    routeData.Values.Add("controller", "User2");

                    routeData.Values.Add("action", "Index");

 

                    return routeData;

                }

 

                return null;

            }

 

            public override VirtualPathData GetVirtualPath(RequestContext requestContext, RouteValueDictionary values)

            {

                return null;

            }

        }


Don't want to miss updates? Please click the below button!

Follow MindStick