0

我在我的 MVC 应用程序模型中使用类级别的自定义验证器。因此,在自定义验证器中,我根据条件生成错误消息并尝试返回 MVC 并将其分配给汇总列表,如下所示。型号名称在这里是“被保险人”

protected override ValidationResult IsValid(object value, ValidationContext validationContext)
    {
            string errorMessage = "";
           //StringBuilder errorMessage1 = new StringBuilder();

            var model = value as Insured;
            if (model == null)
            {
                return new ValidationResult("No valid Session exists.");
            }
            else
            {
                if (model.Age > 19)
                  errorMessage += " <li> Age cannot be greater than 19. </li> " + Environment.NewLine;

            }
      return new ValidationResult(errorMessage);
    }

依此类推,将所有文本添加到错误消息字符串中。但是当我在页面上显示它时,它会在一行中显示所有内容,而不是在下一行显示每个内容,因为我正在使用 Environment.NewLine。

我尝试使用<br/>\n\r 等等,但所有内容都显示为文本而不是 html。

我也尝试使用字符串生成器。

显示:<li> Age cannot be greater than 19. </li><li> Another error. </li>

代替

  • 年龄不能超过 19 岁。
  • 另一个错误。
  • 编辑:当我通过从 firebug 编辑进入 HTML 并在生成的错误消息中留出一个空格时,一切都会完全对齐。这太奇怪了,不明白这个问题。

    4

    1 回答 1

    0

    尝试 HtmlString 而不是字符串

    new System.Web.HtmlString(" <li> Age cannot be greater than 19. </li> ");
    
    于 2013-11-05T20:29:20.270 回答