2009-05-23 9 views
2

a) Au moment où j'ai une application déployée sur en direct sur beta asp.mvc ... mais il y a quelques jours, il refuse de travailler avec l'erreur suivante:Mise à niveau asp.net MVC de la version bêta à la version 1.0

Méthode introuvable: 'System.String System.Web.Mvc.Html.LinkExtensions.RouteLink (System.Web.Mvc.HtmlHelper, System.String, System.Web.Routing.RouteValueDictionary, System.Web.Routing.RouteValueDictionary)'.

Informations de version: Microsoft .NET Framework Version: 2.0.50727.3053; ASP.NET Version: 2.0.50727.3053

résultats googed ne me donne pas quelque chose de pertinent :(

b) mon étape suivante a consisté à mettre à jour l'application à 1.0 ... asp.net mvc mais ici j'ai une nouveau numéro: si en version bêta j'avais:

[AcceptVerbs(HttpVerbs.Post)] 
    public ActionResult Edit(FormCollection entityform) 
    { 
     var entity = repository.GetById(1); 

     UpdateModel(entity, entityform); 
     repository.Update(entity); 

     return View("Index", entity); 

    } 

puis maintenant le UpdateModel (carte, "/ accepte IValueProvider ou DefaultValueProvider /");

Questions:

  1. ce qui a changé ici? (Je suppose que l'environnement hostng a changé quelque chose)
  2. ce que je devrais ajuster ici pour ne pas casser déjà mettre en œuvre la fonctionnalité?

Répondre

3
UpdateModel(entity, entityform.ToValueProvider()); 
1

a) Quand je mis à jour mes projets web j'ai remarqué que ce qui est contenu dans les web.configs sont différents. Notez qu'il y a 2 web.configs, à la fois dans le répertoire principal du projet et dans les vues. Je suggère de créer un nouveau projet MVC 1.0 et de comparer les web.configs à votre version bêta.

b) Je viens d'utiliser UpdateModel en passant dans l'entité et cela le mettra à jour si vous avez passé le FormCollection à votre ActionResult.

 
public ActionResult Edit(FormCollection entityform) 
{ 
    var entity = repository.GetById(1); 
    UpdateModel(entity);