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 を使用しているため、次の行にそれぞれを表示するのではなく、すべてを 1 行に表示します。

\n\r などで試してみ<br/>たのですが、すべて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 に答える