ASP.NET MVC Default URL View
The route you listed only works if they explicitly type out the URL:
yoursite.com/{area}/{controller}/{action}/{id}
What that route says is:
If I get a request that has a valid {area}
, a valid {controller}
in that area, and a valid {action}
in that controller, then route it there.
What you want is to default to that controller if they just visit your site, yoursite.com
:
routes.MapRoute( "Area", "", new { area = "Common", controller = "Home", action = "Index" });
What this says is that if they don't append anything to http://yoursite.com
then to route it to the following action: Common/Home/Index
Also, put it at the top of your routes table.
Makes sure you're also letting MVC know to register the areas you have in the application:
Put the following in your Application_Start
method in the Global.asax.cs
file:
AreaRegistration.RegisterAllAreas();
What you have to do is:
Remove Default Route from global.asax.cs
//// default route map will be create under area//routes.MapRoute(// name: "Default",// url: "{controller}/{action}/{id}",// defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }//);
Update SecurityAreaRegistration.cs in area Common
Add following route mapping:
context.MapRoute( "Default", "", new { controller = "Home", action = "Index", id = "" });
What you're doing seems correct. If I had to guess I would say this is happening due to the way you are running your website. In Visual Studio, if you have a specific view selected when you hit F5 that view will be the starting Url - try selecting the Project and then hitting F5?