none
Problema con testo su più righe RRS feed

  • Domanda

  • Ciao a tutti
    visualizza l'anteprima di una newsletter in questo modo:

     $('#aAnteprima').click(function (e) {
                var id = $('#<%= hdID.ClientID %>').val();
                var oggetto = encodeURIComponent(ReplaceApice($('#<%= txtSubject.ClientID %>').val()));
                var contenuto = encodeURIComponent(ReplaceApice(CKEDITOR.instances['<%= txtContenuto.ClientID %>'].getData()));
                var contenuto_en = encodeURIComponent(ReplaceApice(CKEDITOR.instances['<%= txtContenuto_en.ClientID %>'].getData()));
                var contenuto_de = encodeURIComponent(ReplaceApice(CKEDITOR.instances['<%= txtContenuto_de.ClientID %>'].getData()));
                var contenuto_ja = encodeURIComponent(ReplaceApice(CKEDITOR.instances['<%= txtContenuto_ja.ClientID %>'].getData()));
                var layout = encodeURIComponent(ReplaceApice($('#<%= ddlLayout.ClientID %>').val()));
                           
                $.fancybox({
                    "title"	        : "Anteprima",
                    "type"          : "ajax",
                    "autoDimensions": false,
                    "width"         : 700,
                    "height"        : 800,
                    "href"			: "/Handler/Anteprima.ashx",
                    "ajax"          : {
                                        type    : "POST",
                                        data    : "id=" + id + "&oggetto=" + oggetto + "&contenuto=" + contenuto + "&contenuto_en=" + contenuto_en + "&contenuto_de=" + contenuto_de + "&contenuto_ja=" + contenuto_ja + "&prodotti=" + prodotti + "&layout=" + layout
                                      }
                });
    
                return false;
            });


    using System;
    using System.Web;
    using System.Linq;
    using System.Collections.Generic;
    
    public class Anteprima : IHttpHandler
    {
        
        public void ProcessRequest (HttpContext context) {
            string id = context.Request["id"];
            string oggetto = context.Request["oggetto"];
            tipoLingua contenuto = new tipoLingua();
            contenuto = context.Request["contenuto"];
            contenuto = context.Request["contenuto_en"];
            contenuto = context.Request["contenuto_de"];
            contenuto = context.Request["contenuto_ja"];
            string layout = context.Request["layout"];
            
            string corpo_mail = Newsletter.Anteprima(id, oggetto, layout);
    
            context.Response.ContentType = "text/html";
            context.Response.Write(corpo_mail);
        }
     
        public bool IsReusable {
            get {
                return false;
            }
        }
    
    }

    In locale non ho nessun problema, ma sul server quando inserisco un testo con più righe, non visualizza nulla. Ricevo questo errore da fancybox:

    "The requested content cannot be loaded.
    Please try again later."

    Non capisco perchè.
    Grazie mille

    martedì 15 aprile 2014 08:50

Risposte

Tutte le risposte

  • Ti avviso che nel'handler stai sovrascrivendo la stessa variabile:

    contenuto = context.Request["contenuto"];
    contenuto = context.Request["contenuto_en"];
    contenuto = context.Request["contenuto_de"];
    contenuto = context.Request["contenuto_ja"];

    quindi varrà sempre quello che hai impostato in "contanuto_ja".

    ciao


    Andrea Dottor
    Microsoft MVP - ASP.NET/IIS
    http://blog.dottor.net

    martedì 15 aprile 2014 15:06
    Moderatore
  • Comunque prova ad utilizzare fiddler http://www.telerik.com/fiddler e vedere cosa ti ritorna il tuo handler quando richiami l'anteprima. In questo modo magari hai un errore più dettagliato/leggibile rispetto al messaggio ritornato da fancybox.

    ciao


    Andrea Dottor
    Microsoft MVP - ASP.NET/IIS
    http://blog.dottor.net

    • Contrassegnato come risposta SviPla mercoledì 16 aprile 2014 09:49
    martedì 15 aprile 2014 15:08
    Moderatore
  • Ciao Andrea
    non è quello il problema. Ho modificato il codice per renderlo più leggibile. E' stato un mio errore nel modificare il codice per il post

    martedì 15 aprile 2014 15:54
  • Hai provato a verificare la risposta con Fiddler?

    Andrea Dottor
    Microsoft MVP - ASP.NET/IIS
    http://blog.dottor.net

    • Contrassegnato come risposta SviPla mercoledì 16 aprile 2014 09:49
    • Contrassegno come risposta annullato SviPla mercoledì 16 aprile 2014 09:49
    martedì 15 aprile 2014 18:55
    Moderatore
  • Prova a fare una semplice chiamata ajax per verificare che funzioni p.es:

    $.ajax({
          type: "POST",
          url: "/Handler/Anteprima.ashx",
          data: "id=" + id + "&oggetto=" + oggetto + "&contenuto=" + contenuto + "&contenuto_en=" + contenuto_en + "&contenuto_de=" + contenuto_de + "&contenuto_ja=" + contenuto_ja + "&prodotti=" + prodotti + "&layout=" + layout,
          dataType: "html",
          success: function(msg)
          {
            alert(msg);
          },
          error: function()
          {
            alert("Errore Post AJAX");
          }
        });

    Come suggerito da Andrea utilizza Fiddler per verificare il passaggio di dati.

    Ciao


    Luca Congiu (congiuluc)
    Personal Blog: blog.dotnetcode.it

    Se hai trovato la soluzione all'interno del Forum, ricorda di segnalare il post come risposta, in alternativa puoi postare la soluzione da te adottata. Questo aiuterà altri utenti, che hanno riscontrato la stessa problematica, ad identificare rapidamente la soluzione/risposta corretta.

    mercoledì 16 aprile 2014 07:32
    Moderatore
  • Ciao e grazie
    ho provato e ricevo questo errore:
    "[HttpRequestValidationException (0x80004005): A potentially dangerous Request.Form value was detected from the client (contenuto=&quot;...gradevoli.&lt;br /&gt;
    &lt;br /&gt;
    Esisto...&quot;).]"

    Penso di sapere come risolvere il problema. Provo

    mercoledì 16 aprile 2014 07:50