J'ai un problème, et je ne sais pas quel résultat est correct.asp.net mvc2 validation agissant différemment sur deux serveurs
J'obtiens deux scénarios différents selon l'endroit où je lance l'application - local (mode débogage)/développement (sur un serveur séparé). J'ai un modèle de consultation ConsultationViewModel sur deux pages .aspx (je veux me souvenir des données entre les deux formes).
Formulaire 1 Deux objets (cordes) - Un [Obligatoire]
Formulaire 2 Deux objets (cordes) - Deux [Obligatoire]
Voici où j'obtenir différents scénarios:
• Hôte local: Form 1 - Form 2 = NO erreurs de validation • Développement: Formulaire 1 - Form 2 = Erreur de validation
Form 1
public string Rate { get; set; }
[Required(ErrorMessage = "You must enter your comments")]
public string Comments { get; set; }
Formulaire 2
[Required(ErrorMessage = "Please select a option")]
public string WhatAreYou { get; set; }
[Required(ErrorMessage = "Please select a option")]
public string EthnicOrigin { get; set; }
Pourquoi le serveur de développement at-il besoin de valider WhatAreYou/EthinicOrigin est ceux-ci sont en fait jamais utilisé sur le formulaire 2?
[HttpGet]
public ActionResult Index()
{
ConsultationHolderViewModel consultationViewModel = new ConsultationViewModel();
return View(consultationViewModel);
}
[HttpPost]
public ActionResult Index(ConsultationViewModel consultationViewModel)
{
if (!ModelState.IsValid)
{
return View(consultationViewModel);
}
return View("Equalities", consultationViewModel);
}
[HttpPost]
public ActionResult Equalities(ConsultationViewModel consultationViewModel)
{
if (!ModelState.IsValid)
{
return View(consultationViewModel);
}
switch (consultationViewModel.Button)
{
case "Back":
return View("Index", consultationViewModel);
case "Continue":
return View("Receipt", consultationViewModel);
}
return View("Equalities", consultationViewModel);
}
Merci à l'avance pour toute aide,
Clare
Je remplis manuellement les champs obligatoires avant que ModelState.IsValid affiche toujours les messages d'erreur: consultationViewModel.WhatAreYou = "A";/consultationViewModel.EthnicOrigin = "A"; Pourquoi ferait-il cela? Comme les deux chaînes contiennent des données – ClareBear
Eh bien, je suppose que ce n'est déjà pas valide au moment où votre méthode d'action est appelée. Vous voudrez peut-être ajouter les champs manquants asd HiddenFor() dans votre vue .. et en finir avec cela –
Je reçois toujours la même erreur. – ClareBear