2009-04-15 17 views
0

J'utilise cette option pour enregistrer certaines données DB:ASP.NET MVC et jQuery - Problème ajax encodage

$("#btnSave").click(function() { 
     $.ajax({ 
      type: 'POST', 
      contentType: "application/x-www-form-urlencoded; charset=UTF-8", 
      data: 'description=' + oEditor.GetXHTML(), 
      url: '/SuperAdmin/ReceiveData/', 
      success: function() { 
       alert('news saved'); 
      } 
     }); 
    }); 

"oEditor.GetXHTML" est tiré de FCKEditor. Et, pour recevoir ces données, j'ai une méthode ASP.NET MVC (ActionResult):

public void ReceiveData(string description) 
{ 
} 

Le point est le suivant: quand j'envoie, par exemple, cette phrase inclut les scripts JavaScript "Module d'intégration", la méthode ReceiveData n'obtient que jusqu'à inclure le ... ce qui vient après ne vient pas.

Déboguant ma fonction jQuery ci-dessus, j'ai vu que la phrase que j'essaie de passer à la méthode a un codage html avec &, amp; etc. Et les guillemets du ... "JavaScript Integration Module" ... sont interprétées par la méthode ReceiveData comme un paramètre, car les guillemets ont l'encodage "&".

Alors, comment puis-je transformer cette « & quot » à "avant d'envoyer la méthode MVC? Ou est-il un moyen de rendre cette méthode reconnaître cette « & quot » comme un caractère et non un paramètre?

Merci !!!

Répondre

4

Utilisez escape(oEditor.GetXHTML()).

+0

Salut Daniel! Ça a marché! Quelle est cette méthode d'évasion? – AndreMiranda

+0

https://developer.mozilla.org/En/Core_JavaScript_1.5_Guide/Predefined_Functions/Escape_and_unescape_Functions –