Monday, April 12, 2010

MVC Areas - View not found

Programmer Question

Hi,



I have a project that is using MVC areas. The area has the entire project in it while the main "Views/Controllers/Models" folders outside the Areas are empty barring a dispatch controller I have setup that routes default incoming requests to the Home Controller in my area.



This controller has one method as follows:-



public ActionResult Index(string id)
{
return RedirectToAction("Index", "Home", new {area = "xyz"});
}


I also have a default route setup to use this controller as follows:-



routes.MapRoute(
"Default", // Default route
"{controller}/{action}/{id}",
new { controller = "Dispatch", action = "Index", id = UrlParameter.Optional }
);


Any default requests to my site are appropriately routed to the relevant area. The Area's "RegisterArea" method has a single route:-



context.MapRoute(
"xyz_default",
"xyz/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }


My area has multiple controllers with a lot of views. Any call to a specific view in these controller methods like "return View("blah");
renders the correct view. However whenever I try and return a view along with a model object passed in as a parameter I get the
following error:-



Server Error in '/DeveloperPortal' Application.
The view 'blah' or its master was not found. The following locations were searched:
~/Views/Profile/blah.aspx
~/Views/Profile/blah.ascx
~/Views/Shared/blah.aspx
~/Views/Shared/blah.ascx


It looks like whenever a model object is passed in as a param. to the "View()" method [e.g. return View("blah",obj) ] it searches for the view
in the root of the project instead of in the area specific view folder.



What am I missing here ?



Thanks in advance.



Find the answer here

No comments:

Post a Comment

LinkWithin

Related Posts with Thumbnails