2010-04-08 5 views
0

C'est probablement quelque chose d'idiot qui me manque mais je suis définitivement perdu. J'utilise .NET 4 RC et VS 2010. C'est aussi ma première tentative d'utiliser UpdateModel dans .NET 4, mais chaque fois que je l'appelle, je reçois une exception disant que la valeur ne peut pas être nulle ou vide. J'ai simple ViewModel appelé LogOnModel:Exception appelant UpdateModel - La valeur ne peut pas être nulle ou vide

[MetadataType(typeof(LogOnModelMD))] 
public class LogOnModel 
{ 
    public string Username { get; set; } 
    public string Password { get; set; } 

    public class LogOnModelMD 
    { 
     [StringLength(3), Required] 
     public object Username { get; set; } 
     [StringLength(3), Required] 
     public object Password { get; set; } 
    } 
} 

Mon point de vue utilise les nouvelles aides fortement typées dans MVC2 pour générer une zone de texte pour le nom d'utilisateur et un mot de passe. Lorsque je regarde FormCollection dans ma méthode de contrôleur, je vois des valeurs pour les deux à venir.

Et last but not least, voici ce sont des méthodes post contrôleur:

// POST: /LogOn/ 
    [HttpPost] 
    public ActionResult Index(FormCollection form) 
    { 
     var lm = new LogOnModel(); 

     UpdateModel(lm, form); 

     var aservice = new AuthenticationService(); 

     if (!aservice.AuthenticateLocal(lm.Username, lm.Password)) 
     { 
      ModelState.AddModelError("User", "The username or password submitted is invalid, please try again."); 
      return View(lm); 
     } 

     return Redirect("~/Home"); 
    } 

Quelqu'un peut-il s'il vous plaît prêter comprendre pourquoi UpdateModel serait jeter cette exception? Merci!

Répondre