0

私はビューモデルを持っています

    [CustomValidation(typeof(MyValidation), "MyMethod")]
    [Serializable()]
    public class TransactionViewModel
   {
      public string InvoiceNumber;
   }

 public class MyValidation
{

  public static ValidationResult validatelength(TransactionViewModel length)
{

bool isValid;
 if (length.InvoiceNumber.Length >15)
isValid = false;
 else
isValid = true;
   if (isValid)
 {
    return ValidationResult.Success;
}
 else
 {
    return new ValidationResult(
      "The Field value is greater than 15");
 }
  }
}

検証が失敗した場合、クラスオブジェクトのいくつかのフィールドをチェックしていますコントローラーでモデルの状態をチェックし、請求書番号のビュー、追加された検証メッセージを返しますが、まだエラーが発生しません

検証属性をモデル ビューに適用できますか。私が何か間違ったことをしている場合、PLS は解決策を提供します。

4

2 に答える 2

1

使用する

<%= this.Html.ValidationSummary() %>

また

@this.Html.ValidationSummary()

そして、あなたが探しているものを手に入れるでしょう。

モデル状態が有効でない場合、探しているエラーが発生します。

あなたの問題は、エラーがクラスのどのメンバーにも関連付けられていないということです。モデル状態では、どのフィールドにも関連付けられていないため、キー "" があります。

于 2012-06-15T15:00:19.563 に答える
0

おそらく、ビューに validationsummary を配置するのを忘れていませんか?

<%= Html.ValidationSummary("Create was unsuccessful. Please correct the errors and try again.") %>

レビューのためにビューを送信してください。一方、ここでは、それが機能する良い例を示します: Data Annotation Validators (C#) による検証

Scott のブログからのモデル検証

このチュートリアル hereの処理モデル エラーを参照してください。ただし、キーには空の文字列を使用します。

ModelState.AddModelError(string.Empty, "There is something wrong with Foo.");

ご想像のとおり、エラー メッセージは <%: Html.ValidationSummary() %> に表示されます。

于 2012-06-15T17:38:29.390 に答える