Paramètre d'initialisation d'une méthode, Modification d'un champ d'une table [Résolu]

MauxDangereux 10 Messages postés jeudi 3 décembre 2009Date d'inscription 27 juillet 2012 Dernière intervention - 12 juil. 2012 à 11:37 - Dernière réponse : MauxDangereux 10 Messages postés jeudi 3 décembre 2009Date d'inscription 27 juillet 2012 Dernière intervention
- 12 juil. 2012 à 12:09
Bonjour à vous,

Je débute en asp et j'ai un problème que je n'arrive pas à résoudre, je compte sur votre aide ! :)

Voici mes deux méthodes pour editer des champs dans une table. J'ai initialiser mon paramètre id dans la méthode GET afin de ne pas avoir l'erreur suivante


Le dictionnaire de paramètres contient une entrée Null pour le paramètre 'id' de type non Nullable 'System.Int32' pour la méthode 'System.Web.Mvc.ActionResult Edit(Int32)' dans [...]



Mon problème est le suivant, en initialisant ce paramètre, rien ne ce passe lorsque j'essais d'éditer une entrée. Si par exemple je remplace id=0 par id=5, lorsque j'édite l'entrée dont l'id est égal à 5, mon champ est modifié. Lorsque j'édite une autre entrée, dans ma vue j'ai les info du champs d'id = 5 qui s'affiche et je ne peux rien modifier.

Merci pour votre aide, j'espère avoir été assez clair




       public ActionResult Edit(int id = 0)
        {            
                var productToEdit (from p in _db.aspnet_Products where      p.ProductId id select p).FirstOrDefault();
                return View(productToEdit);
        }

        //
        // POST: /Administration/Edit/5

        [HttpPost]
        public ActionResult Edit(aspnet_Products productToEdit)
        {
            if (!ModelState.IsValid)
                return View();

            try
            {
                var firstProduct (from p in _db.aspnet_Products where p.ProductId productToEdit.ProductId select p).FirstOrDefault();
                _db.ApplyCurrentValues(firstProduct.EntityKey.EntitySetName, productToEdit);
                _db.SaveChanges();

                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }
Afficher la suite 

1 réponse

Répondre au sujet
MauxDangereux 10 Messages postés jeudi 3 décembre 2009Date d'inscription 27 juillet 2012 Dernière intervention - 12 juil. 2012 à 12:09
+3
Utile
J'ai trouvé, l'erreur est simple et bête et ne vient que de moi.
J'avais simplement oublié de décommenter
id=item.PrimaryKey

dans ma vue Index.aspx et de lui renseinger l'id de mon objet.

<%: Html.ActionLink("Edit", "Edit", new { id=item.ProductId }) %>
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de MauxDangereux

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.