views:

2027

answers:

4

How does the new Microsoft asp.net mvc implementation handle partitioning your application - for example:

--index.aspx
--about.aspx
--contact.aspx
--/feature1
--/feature1/subfeature/action
--/feature2/subfeature/action

I guess what I am trying to say is that it seems everything has to go into the root of the views/controllers folders which could get unwieldy when working on a project that if built with web forms might have lots and lots of folders and sub-folders to partition the application.

I think I get the MVC model and I like the look of it compared to web forms but still getting my head round how you would build a large project in practise.

Cheers John

+8  A: 

There isn't any issues with organizing your controllers. You just need to setup the routes to take the organization into consideration. The problem you will run into is finding the view for the controller, since you changed the convention. There isn't any built in functionality for it yet, but it is easy to create a work around yourself with a ActionFilterAttribute and a custom view locator that inherits off ViewLocator. Then when creating your controller, you just specify what ViewLocator to use, so the controller knows how to find the view. I can post some code if needed.

This method kind of goes along with some advice I gave another person for separating their views out for a portal using ASP.NET MVC. Here is the link to the question as a reference.

Dale Ragan
+6  A: 

In terms of how you arrange your views, you can put your views in subfolders if you'd like and create your own view structure. All views can always be referenced by their full path using the ~syntax. So if you put Index.aspx in \Views\Feature1\Home then you could reference that view using ~/Views/Feature1/Home/Index.aspx.

Haacked
+6  A: 

Here's two good blog posts that I found that may help other readers:

http://stephenwalther.com/blog/archive/2008/07/23/asp-net-mvc-tip-24-retrieve-views-from-different-folders.aspx

This one talks a little more in-depth about what Haacked described above.

http://haacked.com/archive/2008/11/04/areas-in-aspnetmvc.aspx

This is a nice alternative for grouping your site into "areas."

scurial
+2  A: 

Thanks for the additional info scurial... And here is another good post from Billy McCafferty on the subject...

http://devlicio.us/blogs/billy_mccafferty/archive/2009/01/22/mvc-quot-areas-quot-as-hierarchical-subfolders-under-views.aspx

solrev