J'essaie juste de faire une validation simple dans MVC RC et je reçois une erreur. Pour les besoins de cette question, je suis n'utilisant pas le UpdateModel.MVC RC Validation: Est-ce vrai?
Voici le code sous la forme:
<%= Html.TextBox("UserId")%>
<%= Html.ValidationMessage("UserId") %>
Si j'ajoute la ligne suivante dans le contrôleur, je vais obtenir un NullReferenceException sur la zone de texte:
ModelState.AddModelError("UserId", "*");
Donc, pour résoudre ce problème, J'ai également ajouté la ligne suivante:
ModelState.SetModelValue("UserId", ValueProvider["UserId"]);
Pourquoi dois-je redéfinir la valeur? Je dois seulement faire ceci si j'ajoute l'erreur, mais il semble que je ne devrais pas avoir à faire ceci. J'ai l'impression que je fais quelque chose de mal ou que je ne suis pas assez familier avec la reliure.
On dirait que je ne suis pas le seul à avoir vu ça. Par demande, voici le code du contrôleur:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(FormCollection collection)
{
AppUser newUser = new AppUser();
try
{
newUser.UserId = collection["UserId"];
AppUserDAL.AddUser(newUser);
return RedirectToAction("Index");
}
catch (Exception ex)
{
ViewData["ReturnMessage"] = ex.Message;
ModelState.AddModelError("UserId", "*");
ModelState.SetModelValue("UserId", ValueProvider["UserId"]);
return View(newUser);
}
I J'ai aussi remarqué cela et je l'ai juste écrit comme quelque chose que j'ai mal fait et continué avec d'autres travaux. –
Pourriez-vous s'il vous plaît ajouter un code de page complet et de la méthode du contrôleur? – zihotki