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 MVC Discussion :

RAZOR : Soumettre des objets


Sujet :

ASP.NET MVC

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2013
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 43
    Points : 40
    Points
    40
    Par défaut RAZOR : Soumettre des objets
    Bonjour à tous,

    J'ai un petit souci, je travail sur un Projet WEB MVC Razor.
    Je dois via une page Web Razor afficher des données et les soumettre après mise à jour (les renvoyer au controller).

    j'utilise ce modèle:
    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
    17
    18
    19
    20
    21
    public class MetadataViewModel
        {
            [Required]
            public string SQLType { get; set; }
            [Required]
            public Int16 ?LenghtType { get; set; }
            [Required]
            public Int32 PropertyID { get; set; }
     
            [Required(ErrorMessage = 
                "Le champ est requis")]
            [RegularExpression(@"^(?:[a-zA-Z0-9.]+\s?)+$", ErrorMessage = "Aucun espace au début ou en fin du champ")]
            [StringLength(32, ErrorMessage =
                "Le doit faire 32 caractéres maximum")]
            public Object Value { get; set; }
            [Required]
            public string Name { get; set; }
     
            [Required]
            public byte TypeDataID { get; set; }
        }
    Mon problème est sur "public Object Value { get; set; }". En effet "Value" peut être un boolean, un string, un INT etc ... c'est pourquoi je l'ai déclaré comme OBJECT.
    Quand je crée mon Formulaire RAZOR, j'arrive très facilement à créer une "checkbox" si ma "Value" est un Boolean, ou une "TextBox" si ma "Value" est un string etc..

    Le problème c'est pour récupérer les données sous le même type.
    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     case "smallint":
     
                        @Html.TextBoxFor(model => model.Metadatas[i].Value, new { @type = "number", @class = "control-label slide-interval", @min = "1" })
                            break;
    Dans le cas ou mon champ Value à pour typeSQl "smallint" je crée une textBox de type number. Mais quand je soumet mon formulaire je reçois un chiffre typé en String et non pas en Int32 !?! PK ?
    Avez vous une solution pour cette exemple et pour réaliser la même problématique avec une checkBox (Injecter et récupérer un boolean à partir du champ Value typé en objet )
    Merci à tous

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2007
    Messages : 871
    Points : 1 498
    Points
    1 498
    Par défaut
    Salut,

    Dans le cas ou mon champ Value à pour typeSQl "smallint" je crée une textBox de type number. Mais quand je soumet mon formulaire je reçois un chiffre typé en String et non pas en Int32 !?! PK ?
    Car tu as creer un textbox, en lui mettant une contrainte number mais en js, du coup lors de ton post il va utiliser le type par defaut d'input: le string.
    Du coup suivant le type en base de donnes tu va devoir convertir chaque fois dans le type ensuite desire.
    Tu as bien conscience comme moi que c'est une solution un peu pourrie.

    Avez vous une solution pour cette exemple et pour réaliser la même problématique avec une checkBox (Injecter et récupérer un boolean à partir du champ Value typé en objet )
    Bah tu devrais faire de meme: generer une checkbox puis cote serveur si c'est un bit convertir "True" ou "False" en 0/1. Bis repetitat

    Au final, je ne connais pas le besoin, mais tu mets les pieds dans une situation assez dificile, car demain tu devras generer des drop down a partir de cles etrangeres etc.

    Utiliser entity pour generer des classes fortement typees serai une solution.
    Passer via des templates t4 pourrait en etre une
    Se palucher tout a la main proprement en serai une
    etc.

    ps pour en revenir a la discussion precedente, avec l'autre moteur de template tu aurais eut les meme problemes.

  3. #3
    Membre actif Avatar de jisig
    Homme Profil pro
    null
    Inscrit en
    Avril 2014
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Indonésie

    Informations professionnelles :
    Activité : null

    Informations forums :
    Inscription : Avril 2014
    Messages : 146
    Points : 273
    Points
    273
    Par défaut
    Tu peux éventuellement envoyer un deuxième paramètre indiquant le type que tu envoies ? et ensuite le parser
    Même une feuille de papier est plus légère si on la porte à deux.

  4. #4
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2013
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 43
    Points : 40
    Points
    40
    Par défaut
    Merci pour vos réponses,

    Citation Envoyé par mermich Voir le message
    Tu as bien conscience comme moi que c'est une solution un peu pourrie...
    Dans un sens je suis d'accord avec toi, en faisant cela je suis obligé de réaliser une conversion. Mais pour répondre à mes besoins et objectifs, je suis obligé d'opter pour cette méthode.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Importer des objet 3d
    Par wikers dans le forum OpenGL
    Réponses: 4
    Dernier message: 25/02/2004, 15h43
  2. Réponses: 6
    Dernier message: 12/02/2004, 21h55
  3. [MFC] libération des objets GDI's
    Par Kevgeii dans le forum MFC
    Réponses: 5
    Dernier message: 01/02/2004, 10h37
  4. Créer des objets sur la pile ?
    Par Cornell dans le forum Langage
    Réponses: 8
    Dernier message: 03/03/2003, 11h47
  5. Importer des objets de 3dsMax
    Par Anonymous dans le forum OpenGL
    Réponses: 3
    Dernier message: 06/05/2002, 13h53

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