SORU
12 Mayıs 2010, ÇARŞAMBA


ASP.NET MVC Html.ValidationSummary(true) model hataları göstermez

Html ile biraz sorunum var.ValidationSummary. ValidationSummary emlak hataları görüntülemek için istemiyorum. Ve Html olarak ayarlayın.ValidationSummary(true) ModelState hata iletileri görüntülenmez. Dize denetleyicisi eylem birkaç İstisnası vardır

MembersManager.RegisterMember(member);

catch bölüm ModelState bir hata ekler:

ModelState.AddModelError("error", ex.Message);

Ama ValidationSummary bu hata iletisi görüntüler. Html olarak ayarlayın.ValidationSummary(false) tüm iletileri görüntüleniyor, ama özellik hataları görüntülemek için istemiyorum. Bu sorunu nasıl düzeltebilirim?

İşte kullanıyorum kod:

Model:

public class Member
{
        [Required(ErrorMessage = "*")]
        [DisplayName("Login:")]
        public string Login { get; set; }

        [Required(ErrorMessage = "*")]
        [DataType(DataType.Password)]
        [DisplayName("Password:")]
        public string Password { get; set; }

        [Required(ErrorMessage = "*")]
        [DataType(DataType.Password)]
        [DisplayName("Confirm Password:")]
        public string ConfirmPassword { get; set; }
}

Denetleyici:

[HttpPost]
        public ActionResult Register(Member member)
        {
            try
            {
                if (!ModelState.IsValid)
                    return View();

                MembersManager.RegisterMember(member);
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("error", ex.Message);

                return View(member);
            }
        }

Görünüm:

<% using (Html.BeginForm("Register", "Members", FormMethod.Post, 
                        new { enctype = "multipart/form-data" })) {%> 
    <p>
        <%= Html.LabelFor(model => model.Login)%>
        <%= Html.TextBoxFor(model => model.Login)%>
        <%= Html.ValidationMessageFor(model => model.Login)%>
    </p>

    <p>
        <%= Html.LabelFor(model => model.Password)%>
        <%= Html.PasswordFor(model => model.Password)%>
        <%= Html.ValidationMessageFor(model => model.Password)%>
    </p>

    <p>
        <%= Html.LabelFor(model => model.ConfirmPassword)%>
        <%= Html.PasswordFor(model => model.ConfirmPassword)%>
        <%= Html.ValidationMessageFor(model => model.ConfirmPassword)%>
    </p>

    <div>
        <input type="submit" value="Create" />
    </div>

    <%= Html.ValidationSummary(true)%>
<% } %>

CEVAP
12 Mayıs 2010, ÇARŞAMBA


ValidationSummary bayrağı işler böyle tek anahtarı olarak string.empty ModelErrors görüntüler olduğuna inanıyorum. Aksi takdirde tesiste bir hata olduğu kabul edilir. Verdiğiniz dize/Model bir özellik değil bir doğrulama yok.

ModelState.AddModelError(string.Empty, ex.Message);

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • bcbauer

    bcbauer

    7 ŞUBAT 2007
  • Ben Vivona

    Ben Vivona

    24 Ocak 2010
  • Defence Videos

    Defence Vide

    13 Mayıs 2013