2017-10-17 3 views
0

Disons que j'ai un formulaire sans liaison de modèle ou annotation de données. Lorsque le formulaire est posté, comment puis-je retourner la vue avec un message de validation sous le contrôle - Note J'essaie de faire la validation côté serveur ici?Ajouter un message de validation à la vue

Voici une sorte d'exemple.

<input name="Address" type="text" value=""> 
<span class="field-validation-valid" data-valmsg-for="Address" data-valmsg-replace="true"></span> 


public ActionResult Create(FormCollection collection) 
{ 
     if (string.IsNullOrEmpty(collection["Address"]) 
     { 
      // Set the field validation error span message 
      ModelState.AddModelError("Address", "This field is required."); 

      return View(); 
     } 
}  

Note: Je sais comment ajouter la validation en utilisant un modèle de vue et les annotations de données. Dans ce scénario, je ne suis pas en mesure d'utiliser un modèle de vue. Il est donc nécessaire de valider manuellement et de renvoyer les messages de validation à la vue.

Le semble ne pas fonctionner au-dessus

* Mise à jour *

Peut-être en utilisant vidéotex comme suit:

<span class="field-validation-valid" data-valmsg-for="Address" data-valmsg-replace="true">@ViewData["Address"]</span> 
+1

Avez-vous essayé d'ajouter '@ Html.ValidationMessageFor (m => m.Address," ")' sous le contrôle? Cela devrait afficher toutes les erreurs d'état du modèle ajoutées dans votre contrôleur pour cette propriété. Il y a aussi '@ Html.ValidationSummary()' qui affiche toutes les erreurs d'état du modèle. – zgood

+0

Faites ce que zgood dit et renvoyez aussi votre modèle à votre vue. 'return View (collection)' –

+0

Aussi, n'oubliez pas de séparer votre ActionResults pour votre Get et Post, pas sûr si vous essayez de combiner les deux ici. –

Répondre

0

J'irais avec des aides html.

@Html.ValidationMessage("Address") 

Cela va générer automatiquement le code HTML:

<span class="field-validation-valid" data-valmsg-for="address" data-valmsg-replace="true"></span>` 

Votre code semble correct.

if (string.IsNullOrEmpty(collection["Address"])) 
{ 
    // Set the field validation error span message 
    ModelState.AddModelError("Address", "This field is required."); 
return View(); 
}