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

  • booba1234

    booba1234

    22 Temmuz 2006
  • edwin maldonado

    edwin maldon

    28 Mart 2009
  • fouseyTUBE

    fouseyTUBE

    21 Mart 2011