Ciao ragazzi,
abbiamo acquistato in azienda un software per la gestione di campagne email con la possibilità di integrarlo sulla nostra piattaforma.
Seguendo le loro indicazioni abbiamo trovato i codici che vi indico di seguito, ma che non riusciamo a far funzionare per colpa del runat="server" della pagine .aspx
PAGINA PROGETTAZIONE
codice:
<form id="form1" runat="serve" >
<div>
<fieldset class="form-iscrizione">
<h2>Iscrizione newsletter</h2>
<label>La tua email: <input name="email" type="text"></label>
<input type="hidden" name="list" value="2">
<input type="hidden" name="group" value="27">
<%-- <asp:Button runat="server" ID="Iscriviti" Text="Iscriviti" />--%>
<input name="Submit" type="Submit" onClick="return isEmail(document.myForm.email.value);" value="Iscriviti">
</fieldset>
</div>
</form>
CODE BEHIND
codice:
Private Sub Subscribe()
Dim retCode As String = "1"
' se retCode = 1 ritorna codice d’errore, se retCode = 0 ritorna il testo
Dim ret_val As String = SubscribeUser(retCode)
' Ottenuto il valore di ritorno di decide cosa fare/visualizzare
' ********************************************************
' Se si è impostato il parametro retCode = 1 i valori di ritorno sono:
' 0 : Operazione completata
' 1 : Errore generico
' 2 : Indirizzo non valido
' 3 : Utente già iscritto
' ********************************************************
Select Case ret_val
Case "0"
' Visualizzare un messaggio che l'utente è stato iscritto con successo
Exit Select
Case "1"
' Visualizzare un messaggio che il servizio al momento non è raggiungibile
Exit Select
Case "2"
' Visualizzare un messaggio che l'indirizzo e-mail inserito non risulta essere valido
Exit Select
Case "3"
' Visualizzare il messaggio che l'utente è già iscritto
Exit Select
Case Else
' Visualizzare messaggio di servizio momentaneamente non disponibile
Exit Select
End Select
'**************************************************************************
' Se si è impostato il parametro retCode = 0 viene restituito il testo dell’errore
'**************************************************************************
' Il valore ret_val può essere associato ad esempio ad un oggetto Label
End Sub
' Questa funzione chiama la pagina di registrazione utente e restituisce il valore di ritorno
Private Function SubscribeUser(retCode As String) As String
Dim strEmail As String = Request.Params("email")
' l'e-mail dell'utente
Dim intList As String = Request.Params("list")
' la lista
Dim intGroup As String = Request.Params("group")
' il gruppo nel quale iscrivere l'utente (opzionale)
Dim blnConfirm As String = 1
'Richiedo conferma
Dim csvFldNames As String = "campo1;campo2;campo3;campo4"
'Prendo i nomi dei campi dalla tabella codici
Dim csvFldValues As String = "Nome;Cognome;Società;M"
'Assegno i valori corrispondenti ai campi nello stesso ordine
Dim result As String = ""
' valore di ritorno
Dim url As String = "INDIRIZZO PERSONALIZZATO"
url += "?list=" & intList & "&group=" & intGroup & "&email=" & strEmail & "&confirm=" & blnConfirm.ToString() & "&csvFldNames=" & csvFldNames & "&csvFldValues=" & csvFldValues & "&retCode=" & retCode
Dim wreq As System.Net.HttpWebRequest = DirectCast(System.Net.WebRequest.Create(url), System.Net.HttpWebRequest)
wreq.Method = "GET"
wreq.Timeout = 10000
Dim wr As System.Net.HttpWebResponse = DirectCast(wreq.GetResponse(), System.Net.HttpWebResponse)
' Se la risposta della pagina è corretta ricavo il valore di ritorno
If wr.StatusCode = System.Net.HttpStatusCode.OK Then
Dim s As System.IO.Stream = wr.GetResponseStream()
Dim enc As System.Text.Encoding = System.Text.Encoding.GetEncoding("utf-8")
Dim readStream As New System.IO.StreamReader(s, enc)
' valore di ritorno
result = readStream.ReadToEnd()
End If
Return result
End Function
In pratica dovrei riuscire a richiamare il code behind indicato, ma se il form ha il tag runat="server" come è obbligatorio, l'invio non funziona.
Eliminandolo invece è tutto ok, ma ovviamente come soluzione non va bene.
Sapete dirmi come posso fare per risolvere?
Grazie mille!!!