Görünümdeki giriş modeli alanlarının altında gösterilecek Doğrulama hata iletilerini alamıyorum.Doğrulama tetikleniyor, ancak hata durumunda mesaj gösterilmiyor. Neyi kaçırıyorum? MVC 5 Razor
Yukarıdaki [Required] etiketinin Açıklama girişi, ModelState Invalid'i geçersiz kılar, ancak gönderimi durdurmaz. Model Devleti kontrol ederek onu yakalamak zorundayım. Bazı .js dosyalarını özlüyor muyum? Bunu ikiye katlamak için hiçbir örnek yok.
İşte benim modelidir (Şimdilik yalnızca bir [Gerekli] var dikkat edin):
public partial class Requests
{
public int RequestID { get; set; }
public string NickName { get; set; }
public Nullable<double> Lat { get; set; }
public Nullable<double> Lng { get; set; }
public string ZipCode { get; set; }
[Required(ErrorMessage = "Description of what you need is missing.")]
public string Description { get; set; }
public System.DateTime DateCreated { get; set; }
}
İşte Açıklama girdi girişi ihtiyacı benim Görünüm olduğunu.
<div class="form-group">
@Html.LabelFor(model => model.Description, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.TextAreaFor(model => model.Description, new { htmlAttributes = new { @class = "form-control", @rows = "20", @cols = "200" } })
@Html.ValidationMessageFor(model => model.Description, "", new { @class = "text-danger" })
</div>
</div>
İşte benim denetleyicisi ActionResult olan kullanıcı doğru Görünüm yönlendirilir ve TempData
şey kaydedildiği göstermektedir ModelState
Başarısızlık halinde
if (ModelState.IsValid)
{
//THIS ALL WORKS IF Description HAS INPUT
}
else
{
TempData["Saved"] = "Nothing saved yet. Look for reason.";
return RedirectToAction("StoreRequests", new { lat = requests.Lat, lng = requests.Lng });
}
(aşağı skinnied). Bununla birlikte, görünümün üst kısmında, Hatalı girişin altındaki Görünümde ValidationSummary
no'lu hata mesajında bir hata mesajı yoktur ve giriş hatası gönderimi durdurulmaz. istemci tarafı doğrulama almak (ve dolayısıyla form, geçersiz ise sunulmadan önlemek) amacıyla
@if(TempData["Saved"] != null)
{
<span style="color: red;">@TempData["Saved"].ToString()</span>
}
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
Teşekkür ederim Stephen. Bunları ekledim ve işe yaradı. Muhtemelen _Layout.cshtml içinde bir çift daha vardı. Eğer bir cevap vermek istiyorsanız bunu kabul edeceğim. – JustJohn
Neden oy kullanmadığımı bilmiyorum. oh iyi – JustJohn