I’m fairly comfortable with MVVM using WPF/Silverlight but this is my first attempt at an MVC Web Application…just an fyi for my background.
I’ve created a controlle
I'll take a stab with my newly learned MVVM ASP.NET MVC experience.
Instead of calling @Html.DisplayNameFor(model => model.WebPageTitle), try using @Html.DisplayFor(model => model.WebPageTitle). You appear to be setting the WebPageTitle value in your IndexWithViewModel controller which should show up in your view.
Look into shared templates for ASP.NET MVC. You can set up custom templates or partials for DisplayFor/EditorFor helpers at /Views/Shared/EditorTemplates/Site.cshtml and /Views/Shared/DisplayTemplates/Site.cshtml. ASP.NET MVC will automatically pick up on those templates when rendering your Site object with DisplayFor and EditorFor.
Good luck!