1

を含むクラスがあります

[Required]
public string FirstName { get; set; }
[Required]
public string LastName { get; set; }

public string FullName {
    get {
        return this.FirstName + " " + this.LastName;
    }
}

Html.ValidationMessageForFullName、または FirstName または LastName が空白のときに表示されるカスタム検証メッセージを持つことは可能ですか?

アップデート

これが私が欲しいものです。

  1. 両方の名前を空白のままにします。Full name is required.
  2. FirstName を空白のままにします。Full name is required.
  3. LastName を空白のままにします。Full name is required.
4

1 に答える 1

1

次のことができます(誤解していないことを願っています):

[Required(ErrorMessage="Yo fill this up please"]
public string FirstName { get; set; }

編集

もう少し具体的な検証要件がある場合はIValidateObject、次のようなモデルを介して実装できます。

public class Person : IValidatableObject
{
    public string FirstName { get; set; }
    public string LastName { get; set; }

    public string FullName
    {
        get { return string.Format("{0} {1}", FirstName, LastName); }
    }

    public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
    {
        if (string.IsNullOrEmpty(FirstName) || string.IsNullOrEmpty(LastName))
        {
            yield return new ValidationResult("The full name is required.");
        }
    }
}

次に、コントローラーで、入力が無効かどうかを ModelState が示します。

[HttpPost]
public ActionResult Create(Person person)
{
    if (!ModelState.IsValid)
    {
        return View();
    }

    // do your stuff here ...
}

もちろん、あなたのビューでは、ValidationSummary を通じて検証メッセージを取得できます。

@Html.ValidationSummary(true)

これが役立つことを願っています。

于 2013-07-17T18:59:04.017 に答える