Outputting Errors to User
Using the StringBuilder class will typically be better for looped string building.

string keys = "";
foreach (KeyValuePair&lt;string, string&gt; entry in core.errorLogger())
{
    keys += entry.Key + ":       " + entry.Value + "&lt;br&gt;";
}


turns into

StringBuilder keys = new StringBuilder();
foreach (KeyValuePair&lt;string, string&gt; entry in core.errorLogger())
{
    keys.AppendFormat("{0}:&amp;nbsp;{1}&lt;br&gt;", entry.Key, entry.Value);
}


Then you take errorSpan.InnerHtml = (keys); and change it to errorSpan.InnerHtml = (keys.ToString());

Alternatively, you could use this to replace the dictionary as CharlesNRice suggests.

StringBuilder keys = new StringBuilder();

 public void errorLogger(string key, string err)
    {
        if(!String.IsNullOrEmpty(err))
        keys.AppendFormat("{0}:&amp;nbsp;{1}&lt;br&gt;", key,err);
    }