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 :

Passer une variable JS a un EditorFor


Sujet :

ASP.NET MVC

  1. #1
    Invité
    Invité(e)
    Par défaut Passer une variable JS a un EditorFor
    Bonjour,

    Je travail sur un site en MVC3 + Razor

    J'ai ce passage ou je veux utiliser une variable de mon JS dans un EditorFor:
    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function test (full) {
       return '@Html.EditorFor(m => Model.VList[full[2]])'; //a chaque appel full[2] contient une valeur differente
    }
    Or "full" n'est pas accessible dans ce cas là.
    Une idée ?

  2. #2
    Membre actif Avatar de Olivier P.
    Homme Profil pro
    Développeur Front-End chez un éditeur logiciel
    Inscrit en
    Octobre 2012
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Front-End chez un éditeur logiciel
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 83
    Points : 206
    Points
    206
    Par défaut
    Bonjour,

    Vous êtes sur que full est disponible dans votre JS ? (avant votre l'instruction Razor)
    MCTS Microsoft 70-536
    MCTS Microsoft 70-515

  3. #3
    Invité
    Invité(e)
    Par défaut
    Oui il est disponible.
    Mais ce que j'essayais de faire n'est pas possible.
    Tout simplement parce que je Razor est un langage "serveur" alors que le JS un langage "client" du coup:
    Razor => JS = possible
    JS => Razor = impossible

  4. #4
    Membre actif Avatar de Olivier P.
    Homme Profil pro
    Développeur Front-End chez un éditeur logiciel
    Inscrit en
    Octobre 2012
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Front-End chez un éditeur logiciel
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 83
    Points : 206
    Points
    206
    Par défaut
    et pourquoi ne pas faire simplement en HTML dans votre code javascript ?

    Perso, la surcouche Razor, je l'utilise quasiment jamais.
    MCTS Microsoft 70-536
    MCTS Microsoft 70-515

  5. #5
    Invité
    Invité(e)
    Par défaut
    Je vais peut être passer pour un ignorant, mais euh...
    pourquoi ne pas faire simplement en HTML
    Comment auriez vous fait ça ? (boucler en HTML ? (vous parlez du PHP ?))

    En immaginant full[1] contient une liste de string pour un <select> et full[2] l'index pré-selectionné

  6. #6
    Membre actif Avatar de Olivier P.
    Homme Profil pro
    Développeur Front-End chez un éditeur logiciel
    Inscrit en
    Octobre 2012
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Front-End chez un éditeur logiciel
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 83
    Points : 206
    Points
    206
    Par défaut
    On est bien d'accord que Razor vous sert à générer du html.. Au final les helpers Razor ne servent qu'à cela.

    Je trouve qu'il rajoutent une couche de complexité pour pas grand chose.

    Dans votre cas, vous chercher à générer un "input" de type "text", avec une valeur pré-alimentée. oui ?

    Comme vous l'avez dit, vous n'avez pas de souci pour récupérer la valeur full[2] dans votre JS.

    Donc 2 solutions.

    1. Vous créer votre champ en dehors du JS :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="Text" id="idChamp"/>
    puis vous l'alimentez dans votre JS :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("idChamp").value = full[2];
    2. Vous créez et alimentez votre champ directement dans le code JS :
    (code à améliorer, mais l'idée est là)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var field = "<input type='Text' id='champ'>";
    var element = document.createElement(field);
    document.body.appendChild(element);
    document.getElementById("champ").value = full[2];
    MCTS Microsoft 70-536
    MCTS Microsoft 70-515

  7. #7
    Invité
    Invité(e)
    Par défaut
    Merci pour votre réponse. j'ai contourné le problème d'une autre façon. Mais si l'occasion se présente, je ferais certainement comme cela.

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

Discussions similaires

  1. faire passer une variable d'une fct js à une page php
    Par harlock59 dans le forum Langage
    Réponses: 1
    Dernier message: 25/11/2005, 14h41
  2. Passer une variable C à un script en Javascript
    Par aquouel dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 21/09/2005, 17h41
  3. [Custom Tags 1.2] Passer une variable comme valeur d'attribut d'un tag jsp
    Par Pi2 dans le forum Taglibs
    Réponses: 7
    Dernier message: 16/09/2005, 14h44
  4. Passer une variable entre deux fenêtres
    Par DeezerD dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 17/08/2005, 09h52
  5. [Struts] Passer une variable dans l'url
    Par pilz dans le forum Struts 1
    Réponses: 2
    Dernier message: 30/03/2005, 15h23

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