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

  • Apple&Tech Reviews & Giveaways

    Apple&Tech R

    12 Temmuz 2008
  • Photoshop Tutorials

    Photoshop Tu

    22 HAZİRAN 2011
  • POGProductionz

    POGProductio

    27 NİSAN 2012