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 :

CKEditor sur PostBack


Sujet :

ASP.NET MVC

  1. #1
    Membre régulier
    Inscrit en
    Avril 2010
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 200
    Points : 111
    Points
    111
    Par défaut CKEditor sur PostBack
    Bonjour,

    Je suis en ASP.NET MVC 4 et j'essaie d'intégrer l'éditeur WYSIWYG CKEditor version 4.1.1, dans le but de créer des news (pour faire simple), donc avec un titre, une image et un contenu texte.

    Sur mes pages Create et Edit, j'arrive bien à intégrer le composant et sur la page Index un simple Html.Raw fait très bien l'affaire.
    J'ai également configué CKEditor via :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    config.htmlEncodeOutput = true;
    pour encoder le contenu afin d'éviter l'erreur ASP suivante :
    A potentially dangerous Request.Form value was detected from the client
    Et côté serveur HttpUtility.DecodeHtml etc. etc.

    Mon problème étant sur les pages Create et Edit : côté serveur je vérifie si le titre existe déjà, si c'est le cas un est effectué.

    Quand la page se recharge pour afficher l'erreur, le contenu du texte dans le composant est en HTML, en gros je vois :
    <p><b>salut !</b></p>
    au lieu de
    salut !
    Comment régler ce problème ? Je pensais que l'éditeur gérerait le fait d'afficher correctement un contenu HTML comme quand j'édite une news. Mais du coup je ne pense pas que ce soit lié à l'éditeur, j'ai également essayé avec TinyMCE et j'ai exactement le même problème.

    Merci par avance et bon week-end !

  2. #2
    Membre éprouvé
    Avatar de dkmix
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    619
    Détails du profil
    Informations personnelles :
    Localisation : Jamaïque

    Informations forums :
    Inscription : Septembre 2007
    Messages : 619
    Points : 924
    Points
    924
    Par défaut
    bonjour,
    vous pouvez essayer dans la vue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Html.Raw(stringHtml)

  3. #3
    Membre régulier
    Inscrit en
    Avril 2010
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 200
    Points : 111
    Points
    111
    Par défaut
    Bonjour,

    Merci de votre réponse mais elle ne convient pas.
    En effet le Html.Raw est déjà effectué dans la vue comme je l'ai précisé dans mon premier Post.

    Mon problème concerne les vues 'Create' et 'Edit' lors du ré affichage du formulaire en cas d'erreur comme je l'ai précisé.

  4. #4
    Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2013
    Messages : 39
    Points : 59
    Points
    59
    Par défaut
    Citation Envoyé par Air P-E Voir le message

    Et côté serveur HttpUtility.DecodeHtml etc. etc.

    Mon problème étant sur les pages Create et Edit : côté serveur je vérifie si le titre existe déjà, si c'est le cas un est effectué.
    Ne faudrait-il pas faire un EncodeHtml avant de retourner la vue en cas d'erreur?

    Cordialement,
    Bernard

  5. #5
    Membre régulier
    Inscrit en
    Avril 2010
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 200
    Points : 111
    Points
    111
    Par défaut
    Bonjour,

    Merci de ta réponse, mais c'était déjà le cas.
    L'encodage se faisait par CKEditor avec un paramètre dans son fichier de configuration mais après impossible de ré-encoder correctement.

    J'ai aujourd'hui une solution qui fonctionne mais que je n'apprécie pas à 100%.
    Elle consiste à utiliser l'attribut
    sur mes deux méthodes POST Create et Edit et à encoder/décoder avec HttpUtility.
    Je ne suis pas fan de cette solution dans le sens ou je désactive la sécurité d'ASP.NET. Je limite cette "faille" en ne l'appliquant que sur les méthodes concernées et en encodant les entrée utilisateurs mais ça ne reste quand même pas la meilleure solution à mon sens.

    Si vous avez une meilleure solution je suis preneur.

  6. #6
    Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2013
    Messages : 39
    Points : 59
    Points
    59
    Par défaut
    Citation Envoyé par Air P-E Voir le message
    Bonjour,

    Merci de ta réponse, mais c'était déjà le cas.
    L'encodage se faisait par CKEditor avec un paramètre dans son fichier de configuration mais après impossible de ré-encoder correctement.

    J'ai aujourd'hui une solution qui fonctionne mais que je n'apprécie pas à 100%.
    Elle consiste à utiliser l'attribut
    sur mes deux méthodes POST Create et Edit et à encoder/décoder avec HttpUtility.
    Je ne suis pas fan de cette solution dans le sens ou je désactive la sécurité d'ASP.NET. Je limite cette "faille" en ne l'appliquant que sur les méthodes concernées et en encodant les entrée utilisateurs mais ça ne reste quand même pas la meilleure solution à mon sens.

    Si vous avez une meilleure solution je suis preneur.
    N'ayant pas encore eu l'occasion d'intégrer CKEditor dans une application MVC, je n'ai pas beaucoup d'idées, si ce n'est celle-ci: est-il possible de désactiver l'encodage/décodage fait pas CK, pour laisser MVC s'en occuper?

  7. #7
    Membre régulier
    Inscrit en
    Avril 2010
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 200
    Points : 111
    Points
    111
    Par défaut
    C'est moi qui avais spécifié que CKEditor devait faire l'encodage pour éviter l'erreur
    A potentially dangerous Request.Form value was detected from the client
    et éviter d'utiliser l'attribut
    Cependant aujourd'hui l'encodage/décodage est bien effectué côté serveur comme je l'ai spécifier dans mon post précédent.

Discussions similaires

  1. CKEditor et postback d'un ajaxtoolkit.AsyncFileUpload
    Par Pelote2012 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 02/08/2012, 11h09
  2. Contenu d'une listbox non récupéré sur Postback
    Par Lino Léum dans le forum ASP.NET
    Réponses: 5
    Dernier message: 15/04/2011, 13h20
  3. Treeview problème sur postback
    Par RENO184 dans le forum C#
    Réponses: 0
    Dernier message: 17/11/2008, 12h31
  4. Réponses: 5
    Dernier message: 26/02/2008, 14h28
  5. Réponses: 2
    Dernier message: 11/02/2007, 10h00

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