2009-03-06 6 views
2

Compte tenu de la méthode du contrôleur suivant:Le passage d'un type anonyme à UpdateModel/TryUpdateModel dans ASPNETMVC

[AcceptVerbs("POST","GET")] 
    public ActionResult apiMapInfo() 
    { 
     var x = new { Lat = "", Long = "", Name = ""}; 
     var mapInfo = new DALServices.Models.MapInfo(); 

// Corrige

 TryUpdateModel(mapInfo); 

// ne met pas correctement

 TryUpdateModel(x); 

     var svc = new APIServices.Services.ReturnMapInfo() {inputs = mapInfo}; 
     svc.Run(); 
     return new ObjectResult<Result>(new Result(svc.errorCode, svc.errorMessage, svc.results), svc.ExtraTypesForSerialization); 
    } 

L'objet x n'est pas mis à jour correctement par la méthode TryUpdateModel, mais l'objet mapInfo est. Mon hypothèse est que la méthode TryUpdateModel ne gère pas le mappage à un type anonyme comme x.

Merci,

Hal

Répondre

3

Anonymous types ont des propriétés en lecture seule et donc aucun paramètre public n'est disponible pour TryUpdateModel pour modifier la valeur de la propriété.

1

Je devine parce que UpdateModel et TryUpdateModel qu'il cherche des propriétés et la réflexion sur les types anonymes pourrait être un peu différent. Dans tous les cas, le plus simple serait de créer un type concret.

Questions connexes