IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Sélectionner sans modifier en asp.NET?


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2014
    Messages : 10
    Par défaut Sélectionner sans modifier en asp.NET?
    Bonjour,

    Je réalise actuellement une application en asp.NET MVC et je possède deux classes présentes sous la forme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    public class MasterCode{
        [Key]
        public int id { get; set; }
        [Required]
        public string libelle { get; set; }
        public virtual IList<Product> products { get; set; }
    }
     
    public class Product{
        [Key]
        public int id { get; set; }
        [Required]
        public string name { get; set; }
        public virtual IList<MasterCode> masterCodes { get; set; }
    }
    Les classes sont en fait (beaucoup) plus complexes que cela mais l'idée est avant tout de représenter leurs rapports. Dans la vue de création et d'édition de la classe Product, j'ai mis en place une liste de champs hidden qui contiennent les id des objets MasterCode liés au Product créé ou édité. Cette liste d'id est mise à jour de façon automatique suite à une série de requêtes ajax suivant l'encodage de l'utilisateur. Cependant lorsque je tente de faire le binding dans le controlleur, celui-ci ne prends effectivement en compte que l'id et me présente donc un ModelState invalide:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Create([Bind(Include = "id,name,masterCode")] Product product)
    {
        /*Faux puisque les mastercode de product sont vides en dehors de leur id*/
        if (ModelState.IsValid)
        {
            /*...*/
        }
        return View(product);
    }
    Je ne peux pas ajouter les autres champs de MasterCode puisque, d'une part, ceux ci sont parfois extrêmement massifs (plus d'une page de texte) et ensuite parce que seuls les administrateurs ont le droit d'effectuer des modifications sur ses champs (et je ne veux pas qu'un petit malin s'y connaissant un peu en html aille y mettre son grain de sel).

    En clair, comment puis-je m'arranger pour sélectionner un MasterCode mais sans pouvoir le Modifier.


    J'espère avoir été clair et en tous cas un grand merci d'avance à tous...

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par Diogon Voir le message
    J'espère avoir été clair
    Pas vraiment, il est difficile de comprendre la problématique.

    Citation Envoyé par Diogon Voir le message
    Je ne peux pas ajouter les autres champs de MasterCode puisque, d'une part, ceux ci sont parfois extrêmement massifs (plus d'une page de texte) et ensuite parce que seuls les administrateurs ont le droit d'effectuer des modifications sur ses champs (et je ne veux pas qu'un petit malin s'y connaissant un peu en html aille y mettre son grain de sel).

    En clair, comment puis-je m'arranger pour sélectionner un MasterCode mais sans pouvoir le Modifier.
    Si je comprends bien, tu cherches à passer ces infos à ton Controller tout en les protégeant contre les modifications ?

    Si c'est cela, déjà il est recommandé d'utiliser SSL. En plus, tu peux crypter ces infos. Par exemple au chargement de la page, tu serialize en JSON puis to cryptes et tu stockes dans un champ, tu envoies à ton Controller qui va décrypter puis traiter les infos.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2014
    Messages : 10
    Par défaut
    Ce n'est pas exactement ça, ce que je souhaite, c'est pouvoir passer exclusivement le ou les identifiants au contrôleur et que le bind se fasse quand même, rapatriant les données manquantes depuis la db.

Discussions similaires

  1. [ASP.NET][C#]Comment modifier les entetes d'un DataGrid?
    Par Cervantes dans le forum ASP.NET
    Réponses: 2
    Dernier message: 11/04/2007, 17h51
  2. ASP.NET sans Visual Studio?
    Par kahya dans le forum ASP.NET
    Réponses: 3
    Dernier message: 09/03/2007, 09h21
  3. [CR][ASP.Net] Incohérence PageNumber avec/sans condition
    Par SoaB dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 13/01/2006, 12h10
  4. Réponses: 19
    Dernier message: 28/01/2005, 09h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo