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 :

[MVC3.2/JQuery1.8.x] Problème de réactualisation de hidden sur render partial


Sujet :

ASP.NET MVC

  1. #1
    CUCARACHA
    Invité(e)
    Par défaut [MVC3.2/JQuery1.8.x] Problème de réactualisation de hidden sur render partial
    Salut,

    J'ai créé une vue partielle que je mets à jour avec un post ajax jquery.

    L'un des champs hidden contient un petit XML.

    Lorsque mon contrôleur retourne la vue partielle, mon modèle contient bien la valeur du hidden mise à jour.

    Pendant que la vue razor se construit, je vois bien que la valeur du champs qui est passée contient bien l'xml mis à jour.

    Par contre, dans la chaine que reçoit l'ajax, c'est l'ancienne version du contenu qui est reçu.

    J'ai bien fait en sorte que le cache soit désactivé, aussi bien dans le navigateur que dans la méthode MVC.

    Je ne comprends pas trop pourquoi ça ne fonctionne pas, quelqu'un aurait-il déjà eu un problème similaire ?

    D'avance merci

    Laurent

  2. #2
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 236
    Par défaut
    Bonjour,

    Un bout de code permettrait de mieux comprendre ton problème

  3. #3
    CUCARACHA
    Invité(e)
    Par défaut
    Salut,

    Merci pour ta participation.
    Pour le moment, j'ai opté pour une mise à jour Ajax de mon Hidden.
    Comme mon code commencait à devenir un peu crad, j'ai décidé de tout remettre au propre et c'est en cours.
    Lorsque ce sera fait, je réessayerais.
    Si ça fonctionne j'expliquerais pourquoi et si ça n'est pas le cas, je vous solliciterais à nouveau.

    Bien à toi

    Laurent

  4. #4
    CUCARACHA
    Invité(e)
    Par défaut
    Salut,

    Je confirme que ça ne fonctionnait pas. Je n'arrive pas bien à me l'expliquer mais je sens que ça vient d'un problème de gestion du cache quelque part et ce, malgré le fait que j'ai tout désactivé partout.

    La parade que j'ai trouvé est la suivante :

    Dans la vue

    Je crée un text area en dur en lui passant directement du Html encodé entre les balises.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
                @{
                    string encodedeHtml = Server.HtmlEncode(Model.VersionsContenuClausesSerialisees);
                }
                <textarea id="taeDataTransfert">@Html.Raw(encodedeHtml)</textarea>
    Dans le post ajax jquery :

    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
    22
    23
    24
    25
    26
    27
    28
     
    function AjoutModificationVersionContenuClause() {
        var ajaxData;
        var inputs = '';
        $(':input').each(function () {
            inputs += ';' + $(this)[0].tagName;
        })
        var model = $(':input').serializeObject();
        var ajaxData = JSON.stringify(model);
        $.ajax({
            type: "POST",
            url: "/EditeurClause/AjoutModificationVersionContenuClause",
            data: ajaxData,
            contentType: "application/json",
            async: false,
            success: function (dataReturn) {
                $("#divVersionsClauses").html(dataReturn);
                var transferedXML = $("#taeDataTransfert").val().trim();
                $("#hidVersionsContenuClausesSerialisees").val(transferedXML);
                $("#hidModifiee").val("false");
                PrepareEditor();
            },
            error: function (jqxhr, data, erreur) {
                var err = eval("(" + jqxhr.responseText + ")");
                alert(err.Message);
            }
        });
    }
    Je transfère la valeur de ma textarea dans le hidden côté client.

    Tout ceci à pour but de ne pas rompre la correspondance entre le modèle parent et le modèle partiel remis à jour par le post ajax.

    Ainsi, lorsque je poste mon formulaire à la fin, je peux faire un traitement bulk de mes mises à jour en base pour mes enregistrements de détail.

    Bien à vous

    Laurent

Discussions similaires

  1. Problème de réactualisation de fonctions
    Par hugethor dans le forum Programmation multimédia/Jeux
    Réponses: 1
    Dernier message: 06/01/2015, 10h07
  2. Problème de réactualisation de fichiers
    Par oops! dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 10/08/2006, 15h57
  3. Réponses: 8
    Dernier message: 16/06/2006, 00h57
  4. Réponses: 5
    Dernier message: 11/03/2004, 15h34
  5. Réponses: 5
    Dernier message: 27/08/2003, 11h45

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