Example #1
0
        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(
                    @"
                    }");
            }
        }