public void AddServerErrors(string prefix) { string truePrefix = htmlHelper.ViewData["_TruePrefix_"] as string; if (truePrefix != null) { if (truePrefix == string.Empty) { prefix = prefix.Replace(ClientTemplateHelper.templateSymbol + ".A.", string.Empty); } else { prefix = prefix.Replace(ClientTemplateHelper.templateSymbol + ".A", truePrefix); } } ModelStateDictionary errors = new ModelStateDictionary(); BasicHtmlHelper.CopyRelevantNonEmptyErrors( errors, htmlHelper.ViewData.ModelState, prefix ); if (errors.Count == 0) { return; } if (errorsWriter == null) { errorsWriter = new StringBuilder(); errorsWriter.Append( @" <script language='javascript' type='text/javascript'> $(document).ready(function() { MvcControlsToolkit_ServerErrors([ "); } else { errorsWriter.Append(", "); } bool start = true; foreach (KeyValuePair <string, ModelState> element in errors) { if (!start) { errorsWriter.Append(", "); } start = false; errorsWriter.Append( @" { id: "); errorsWriter.Append("'"); errorsWriter.Append(BasicHtmlHelper.IdFromName(element.Key)); errorsWriter.Append("'"); errorsWriter.Append(", "); errorsWriter.Append( @" name: "); errorsWriter.Append("'"); errorsWriter.Append(element.Key); errorsWriter.Append("'"); errorsWriter.Append(", "); errorsWriter.Append( @" errors: [ "); bool innerStart = true; foreach (ModelError error in element.Value.Errors) { if (!innerStart) { errorsWriter.Append(", "); } innerStart = false; errorsWriter.Append( @" "); errorsWriter.Append("'"); errorsWriter.Append(error.ErrorMessage); errorsWriter.Append("'"); } errorsWriter.Append( @" ] "); errorsWriter.Append( @" }"); } }