Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
HTML, Javascript, CSS, DHTML, XHTML
Passaggio di una struttura in POST ad una pagina aspx , evento page_lo...
martedì 17 gennaio 2017 - 10.34
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
C#
|
Javascript
|
HTML 5
hopera
Profilo
| Newbie
23
messaggi | Data Invio:
mar 17 gen 2017 - 10:34
Ciao a tutti,
vorrei passare una lista di strutture via post ad una pagina aspx, per test ho scritto una pagina chiamante in html il cui codice è riportato qui sotto:
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
</head>
<body>
<form id="mainform" action="Default.aspx" method="post">
<input type="submit" value="Submit">
</form>
<script type="text/javascript">
var frm = $('#mainform');
var myarray = [{ "Id": 1, "Type": "type1", "State": "state1" }, { "Id": 2, "Type": "type2", "State": "state2" }];
frm.submit(function (ev) {
$.ajax({
type: frm.attr('method'),
url: frm.attr('action'),
data: JSON.stringify(myarray),
contentType: 'application/json',
success: function (data) {
window.open('Default.aspx');
},
fail: function (data) {
alert("error");
}
});
ev.preventDefault();
});
</script>
</body>
</html>
mi aspetto (cosa che si verifica regolarmente) di ricevere la struttura nella load del code behind della pagina aspx, che riporto di seguito:
public partial class Default : System.Web.UI.Page
{
protected string _serJsonDetails = String.Empty;
protected void Page_Load(object sender, EventArgs e)
{
if (Request.HttpMethod == "POST")
{
if (Request.InputStream.Length > 0)
{
System.IO.Stream s = Request.InputStream;
Request.InputStream.Position = 0;
using (var inputStream = new StreamReader(Request.InputStream))
{
_serJsonDetails = inputStream.ReadToEnd();
}
}
}
}
}
Notare che utilizzo per il passaggio della lista alla parte javascript l'istruzione:
var lista = JSON.parse('<% = _serJsonDetails %>');
Il passaggio dei parametri in sè funziona correttamente, se non fosse che il metodo page_load viene chiamato 2 volte , la prima in POST correttamente viene popolata la lista, la seconda volta in GET, la _serJsonDetails si svuota e di conseguenza non posso utilizzarla.
La domanda è : come posso evitare che venga scatenato 2 volte il metodo page_load , mi piacerebbe che venga scatenato solo una volta quando passa la POST, oppure che venga mantenuto il valore della _serJsonDetails , ma se viene effettuato il doppio caricamento di fatto non credo questo sia possibile, ho provato anche a memorizzare in un campo hidden lato server ma mi viene sempre svuotata.
No so se dipende dalla pagina chiamante oppure no
Grazie mille per i graditi suggerimenti
GD
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !