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

Messages postés
10
Date d'inscription
jeudi 3 décembre 2009
Dernière intervention
27 juillet 2012
- - Dernière réponse : MauxDangereux
Messages postés
10
Date d'inscription
jeudi 3 décembre 2009
Dernière intervention
27 juillet 2012
- 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 

Votre réponse

1 réponse

Meilleure réponse
Messages postés
10
Date d'inscription
jeudi 3 décembre 2009
Dernière intervention
27 juillet 2012
3
Merci
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 }) %>

Merci MauxDangereux 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 102 internautes ce mois-ci

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.