2 つの別々のページを 1 つにリファクタリングし、ビュー モデルもマージしました。
現在、私のプロジェクトでは、ログイン フォームと登録フォームがタブ付きビューの同じページにあります。
私が抱えている問題は検証にあります。最初のフォームには必須の 2 つのフィールドがあり、もう 1 つのフォームには、同じく必須の他の 2 つのフィールドがあります。最初のフォームを投稿すると、他の 2 つのフィールドの検証が失敗します。
IValidatableObject を試してみましたが、次のようなことはできません。
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if (PostPackOrigin == "LoginForm")
{
if(Username == "")
yield return new ValidationResult("Username missing");
if(Password == "")
yield return new ValidationResult("Password missing");
}
if (PostPackOrigin == "RegistrationForm")
{
if(Name == "")
yield return new ValidationResult("Name missing");
if(Email == "")
yield return new ValidationResult("Email missing");
}
}
またはそのようなもの。ポストバックの発信元をどのように検出できますか、または検証を処理する別の方法はありますか?
どうもありがとう