Вам не нужно создавать частичный класс. Как выглядит код действия вашего контроллера? Похоже, что ошибка может быть из-за того, что вы не передали представление (и, следовательно, главную страницу) модели.
Попробуйте что-то вроде этого:
namespace MuniWeb.Website.ViewDataModels {
public class BaseViewData
{
public string Title { get; set; }
public string MetaKeywords { get; set; }
public string MetaDescription { get; set; }
}
public class SubViewData : BaseViewData
{
public IList<Thing> Things { get; set; }
}
}
Затем определите свою главную страницу, как у вас:
<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage<MuniWeb.Website.ViewDataModels.BaseViewData>" %>
Теперь в вашем контроллере
public ActionResult Index()
{
SubViewData viewData = new SubViewData();
viewData.Title = "Page Title";
viewData.MetaKeywords = "This, that, and the other";
viewData.MetaDescription = "A really great page about this, that, and the other.";
viewData.Things = _myRepository.GetThings();
return View(viewData);
}
Посмотрите, как это происходит ...
Я бы спросил, почему на MasterPage НУЖНО строго указывать ViewData. Я понимаю, что да, иногда на типовых страницах требуются строго типизированные данные представления, но, как правило, вы должны иметь возможность просто использовать коллекцию значений имени ViewData.