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

  • Adam Washington

    Adam Washing

    12 Mayıs 2006
  • BioHunta

    BioHunta

    28 Mayıs 2006
  • vgeller1

    vgeller1

    22 Kasım 2009