2
votes

I have some problems using Areas in my MVC project. I'm able to access my controller, which is located under the area, but when it returns to view (with model), I get an error:

The view 'Index' or its master was not found or no view engine supports the searched locations.The following locations were searched: ~/Views/MyController/Index.aspx ~/Views/MyController/Index.ascx etc.

Here is the MyAreaAreaRegistration:

public override void RegisterArea(AreaRegistrationContext context)
{
     context.MapRoute(
        "MyArea_default",
        "MyArea/{controller}/{action}/{id}",
        new { controller = "MyController", action = "Index", 
        id = UrlParameter.Optional });
}

Routeconfig:

routes.MapRoute(
                name: "Default", // Route name
                url: "{controller}/{action}/{id}", // URL with parameters
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
                namespaces: new[] { "MyApp.Controllers" }
            );

Global.asax:

protected void Application_Start()
{
     AreaRegistration.RegisterAllAreas();
     ...
     RouteConfig.RegisterRoutes(RouteTable.Routes);
}

And controller:

return View(myViewModel);

I'm totally stuck with this one. Any help would be much appreciated.

1

1 Answers

3
votes

Please change your route config code .

routes.MapRoute(
                 name: "Default", // Route name
            url: "{controller}/{action}/{id}", // URL with parameters
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            ).DataTokens.Add("area", "MyArea"); ;

It will be work for you .

Thanks .