2009-12-10 5 views
1

Je passais par la classe AccountController (celle par défaut). J'ai remarqué que "_FORM" est utilisé à plusieurs endroits avec le ModelState. Pour, isntance:Quelle est la signification de "_FORM" dans ModelState?

if (String.IsNullOrEmpty(userName)) 
     { 
      ModelState.AddModelError("username", "You must specify a username."); 
     } 

if (!String.Equals(password, confirmPassword, StringComparison.Ordinal)) 
     { 
      ModelState.AddModelError("_FORM", "The new password and confirmation password do not match."); 
     } 

Il est facile de dire la signification pour le nom d'utilisateur (comme pour pour le courrier électronique, mot de passe et confirmPassword). mais qu'est-ce que "_FORM"? A-t-il une signification particulière? Je n'ai pas vu où cela est défini.

Merci d'aider

Répondre

3

Si vous ne disposez pas d'un élément d'entrée avec name="_FORM" cela pourrait être utilisé pour ajouter simplement une erreur de modèle qui sera présenté dans le résumé d'erreur, mais pas d'entrée apparaît en rouge.

+0

Cela a du sens. Merci – Richard77

+0

C'est exactement exact. Le nom "_FORM" est juste un mannequin pour qu'il apparaisse dans le résumé, mais pas dans un message de validation de champ. Les modèles MVC 2 utilisent la chaîne vide ("") au lieu de "_FORM", mais le résultat final est le même. – Levi

0

Il a une signification dans MVC 2 comme un moyen de spécifier une erreur de résumé de validation, comme décrit ci-dessus.

Mais dans MVC 3 et plus tard, vous devez passer une chaîne vide comme paramètre clé pour ModelState.AddModelError(). Passer "_FORM" pour indiquer une erreur de résumé de validation ne semble plus fonctionner. See this question for more details.

Questions connexes