Comment utiliser le html.ValidationMessageFor
J'essaie d'obtenir mon point de vue pour me donner le message d'erreur suivant à la zone de texte, si un utilisateur entre quelque chose de non valide (comme une chaîne où il s'attend à un nombre). Au lieu de cela, je suis une vilaine page d'erreur disant échec de la validation lorsque l'utilisateur appuie sur soumettre.
Voici une partie de mon point de vue:
@model MembershipTest.ViewModels.AddDriverViewModel
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
@{
Layout = "~/Views/Shared/_Layout.cshtml";
ViewBag.Title = "Add Drivers";
}
@using (Html.BeginForm("AddDriver", "Driver"))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<fieldset>
<legend>Customer Information</legend>
<table>
<tr>
<td>
@Html.Label("First Name:")
@Html.TextBoxFor(m => m.Driver.F_Name)
@Html.ValidationMessageFor(m => m.Driver.F_Name)
</td>
<td>
@Html.Label("Gender:")
@Html.RadioButtonFor(m => m.isMaleChecked, "true") Male
@Html.RadioButtonFor(m => m.isMaleChecked, "false")Female
</td>
</tr>
<tr>
<td>
@Html.Label("Last Name:")
@Html.TextBoxFor(m => m.Driver.L_Name)
@Html.ValidationMessageFor(m => m.Driver.L_Name)
</td>
Et voici la partie pertinente de mon modèle:
[Required]
[StringLength(30)]
public string F_Name { get; set; }
[Required]
[StringLength(30)]
public string L_Name { get; set; }
Dans la méthode post de mon contrôleur, je assurez-vous d'utiliser
if (ModelState.IsValid)
Si l'utilisateur s'est passé pour entrer dans quelque chose comme 50 caractères dans la première zone de texte nom, je veux une erreur doit être affiché à l'aide de Html.ValidationMessageFor() à droite quand ils onglet en dehors de cette zone de texte, de sorte qu'ils puissent le voir avant d'appuyer sur envoyer. Je suis pas certains de jquery pour faire ça? Peut-être certains à l'aide de déclaration, j'ai besoin d'inclure?
- montrer mon merci de votre modèle complet et le code du contrôleur. et qu'est-ce que le laid d'erreur que vous obtenez? il va aider.
Vous devez vous connecter pour publier un commentaire.
Il était stupide simple.....Je n'ai tout simplement pas ajouter le ErrorMessage de terrain dans le cadre de la [Obligatoire] décorateur. Par exemple:
Maintenant, si un utilisateur ne veut pas entrer quelque chose dans le nom des champs, ou dans quelque chose de plus de 30 caractères, la méthode Post n'est pas exécuté et l'utilisateur obtient un petit message pour leur dire ce qui est faux.