The exception is probably just a simple exception telling you that the Build
method is trying to read a field value of a field in a Component's IFieldSet
dictionary for a dictionary key that is defined in your code, but not set in the published component.
Edit the Build
method to always check whether a field actually consists in the published component:
if (tridionComponent.Fields.ContainsKey("title"))
{
Title = tridionComponent.Fields["title"].Value;
}// else return an empty string, or throw the exception if the field is really always needed
It always helps to ensure that values are set properly in Tridion Components by setting the field in the Component's Schema to Mandatory. In any case, I personally always find it better to log an error stating that the field isn't present rather than to kill the whole page, therefore I always program my view models as defensively as possible.