Umbraco 7 has messed around with, and closed down much of the MVC routing engine, to such a point that one cannot really be sure what standard MVC techniques still work.
I have quickly come to the conclusion that while Umbraco makes very good CMS only sites this is a difficult area for a developer wishing to extend the site, say by putting additional pages in. All pages should be CMS pages and the components that the developer develops should be view based within them, or using the so called “Surface Controllers”.
Is this a problem? I’m not sure right now for myself, and for the reader, it depends on your requirements. There may be times when you legitimately want to add some functionality outside of a CMS page. Your choices are very restricted as related – even examples that should work such as using Plugin Controllers, I can’t get to work – at best the website just hangs. Possibly because its passing some data around between pages and I’m not getting my routing code correct yet – I’ll update this post if I find out the answer.
So if you want to mix CMS and your own pages, you must start with Umbraco pages and write your pages into the content, or choose another CMS.
If you want additional pages in your site, then your choice is between making Umbraco pages and “programming” these, or putting your additional pages into a pure MVC project based sub-domain.
Redirecting the odd .aspx page
I have a small website that I wanted to perform some simple 301 redirects as it was replacing a webforms website.
There are better ways of doing this (URL rewriting in the config file, or writing an handler for example), but what I ended up doing was creating a number of ASP.NET webpages of the same names as the old pages in the site, and having a Response.RedirectPermanent(“url”) in the Page_Load of the code behind.
I also needed to alter the following Umbraco web.config AppSetting to get this to work:
<add key="umbracoReservedUrls" value="~/config/splashes/booting.aspx,~/install/default.aspx,