Mikmak validatie implementeren
Ik kan niet genoeg op noodzaak van het valideren van gegevensinput wijzen.
UnitBase Inserting View pagina
Validatieregels in het model
We hebben businessregels toegevoegd in het UnitBase model. Je vindt die terug in Mikmak Model UnitBase.
Valideren in de Controller
Hoe je valideert kan je lezen in ASP.NET MVC Gegevens valideren.
We passen de Insert
methode in de UnitBaseController
aan:
[HttpPost] public ActionResult Insert(string UnitBaseCode, string UnitBaseName, string UnitBaseDescription) { Models.Dal dal = new Models.Dal(); Models.UnitBase unitBase = new Models.UnitBase(); unitBase.Code = UnitBaseCode; unitBase.Name = UnitBaseName; unitBase.Description = UnitBaseDescription; if (TryValidateModel(unitBase)) { dal.DbSetUnitBase.Add(unitBase); dal.SaveChanges(); } return View("Inserting", dal.DbSetUnitBase); }
Feedback op de MasterLayout.cstml pagina
We dumpen de hele ModelState in de feedback div op de MasterLayout.cshtml pagina;
<div id="feedback"> @ViewBag.Feedback @foreach (var item in ViewContext.ViewData.ModelState) { if (item.Value.Errors.Any()) { <tr> <td><b>@item.Key</b></td> <td>@((item.Value == null || item.Value.Value == null) ? "<null>" : item.Value.Value.RawValue)</td> <td>@(string.Join("; ", item.Value.Errors.Select(x => x.ErrorMessage)))</td> </tr> } } </div>
Feedback op de Inserting View pagina
We tonen alleen de validatiefoutmeldingen op de Inserting View pagina en we gebruiken de statische ValidationSummary
methode van de Html
helperklasse daarvoor:
<div class="feedback"> @Html.ValidationSummary() </div>
2016-12-10 14:09:25