If you take a look at out of the box SharePoint 2010 blog post template (C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\SiteTemplates\Blog) it provides a starting point for many applications. In my case I used blog post template and its corresponding POSTS list. I create a copy of POSTS list to make a separate entity with the same functionality as posts. I created a content type for both of my entities. When I ran my solution the Display Form (ViewPost.aspx) of my POSTS list pointed to the right location; however, my other entity Display Form pointed to the POSTS as well rather than it’s own list.
As it turns out, when you create a new Content Type for blog posts with Visual Studio 2010 Wizard it will automatically generate a new GUID and inherit it from 0×0110 which is the default content type for POST. Also, the CTYPES feature inside 14 hive will provision certain defaults for that content type among which is this:
<XmlDocument NamespaceURI=”http://schemas.microsoft.com/sharepoint/v3/contenttype/forms/url”>
<FormUrls xmlns=”http://schemas.microsoft.com/sharepoint/v3/contenttype/forms/url”>
<Display>$Resources:core,lists_Folder;/$Resources:core,blogpost_Folder;/Post.aspx</Display>
<MobileDisplay>_layouts/mobile/disppost.aspx</MobileDisplay>
<MobileNew>_layouts/mobile/newpost.aspx</MobileNew>
</FormUrls>
</XmlDocument>
Highlighted is the part that tells POST Content Type to redirect its Display form to the blogpost_Folder – which is Lists/Posts and not anything else.
So, lesson learned – if you’re planning to create new content type that will inherit from the out of the box, and especially Blog Post content type in this case, make sure you set correct URL for your forms example:
<XmlDocument NamespaceURI=”http://schemas.microsoft.com/sharepoint/v3/contenttype/forms/url”>
<FormUrls xmlns=”http://schemas.microsoft.com/sharepoint/v3/contenttype/forms/url”>
<Display>Lists/Notes/Post.aspx</Display>
</FormUrls>
</XmlDocument>
Here is more about FormUrls schema.
Good luck!