5 messaggi dal 11 aprile 2020
Buongiorno. Sto studiando come funziona ASP.NET. Problema. Non riesco a passare l'informazione nella pagina chiamata.
Pagina 1:
<%@ Page Language="VB" %>
<script runat="server">
Sub Page_Load(obj As Object, e As EventArgs)

End Sub
</script>
...
<body>

<p>
<form id="Login" runat="server" action="CtrlLogin.aspx" method="post">
<table align="center">

<tr><td> Utente <asp: TextBox ID="Utente" runat="server" /> </td></tr>

<tr> <td> <asp: Button runat="server" ID="BtmInvio" Text="invio" /></td></tr>
</table>
</form>
</body>
</html>
-----------------------------
Pagina chiamata
------------------------------
Pagina 2 CtrlLogin.aspx:
-----------------------------
<%@ Page Language="VB" %>

<script runat="server">

Public User, Psw As String


Sub Page_Load(obj As Object, e As EventArgs)

---Caso 1 : ---
User = Request.Form("Utente") <% il request.form("Utente") è Nothing: non c'è nulla %>

--------------------------------------------------------------------------------------------------
---Caso 2 :---
User= Request.Form("Password").ToString() <%in questo caso con .ToString(), genera errore: Eccolo;

System.NullReferenceException: 'Riferimento a un oggetto non impostato su un'istanza di oggetto.'

System.Collections.Specialized.NameValueCollection.this[string].get ha restituito Nothing.

--------------------------------------------------------------------------------------------------

Response.Write(User) <% Nel caso 1; è Nullo %>

End Sub
</script>
...
<body>

</body>
</html>
427 messaggi dal 13 novembre 2009
Qui trovi varie modalità
http://www.binaryintellect.net/articles/c585b4d3-93c5-4c66-9d49-8e1946f4d311.aspx
5 messaggi dal 11 aprile 2020
Fabio grazie della celerità con cui mi hai risposto. Ho letto la pagina. Mi si pone un nuovo problema. Le istruzioni della pagina di aiuto dove vanno scritte?
Perché aprendo il Form (aspx) e inserendo codice tra gli <script ...> in testa,

NON Accetta il codice.

<script runat="server">
...
private void Button1_Click
(object sender, System.EventArgs e)
{
//textbox1 and textbox2 are webform
//controls
Session["name"]=TextBox1.Text;
Session["email"]=TextBox2.Text;
Server.Transfer("anotherwebform.aspx");
}
...
</script>

Allora mi sono chiesto se vanno con un altro modulo ad esempio, C#, (che non conosco). Non sai se ci sono esempi pratici, in giro?
Grazie a tutti della disponibilità!
Modificato da afazi2006 il 13 aprile 2020 12:28 -
427 messaggi dal 13 novembre 2009
Innanzitutto la gestione lati server la dovresti fare nel .cs quindi onclick del button. Poi imposti i valori in session e quindi fai response redirect alla maschera 2. Quindi essendo variabili in session hanno innanzitutto una durata, di solito 20 min, ma modificabile nel web config e leggibili ovunque lato server
5 messaggi dal 11 aprile 2020
ok, ci provo. Spero di riuscire.
Grazie, ti farò sapere.
3.939 messaggi dal 28 gennaio 2003
A me sembra che il codice originale sia sostanzialmente corretto.
Lasciando inalterata la prima pagina, la seconda l'ho un po' modificata
<%@ Page Language="VB" %>

<!DOCTYPE html>

<script runat="server">
    Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
        Me.Label1.Text = RequestParams("Utente")
    End Sub

    '--------------------------------------------------------------------------------------------------
    'Restituisce il parametro Form se esiste, altrimenti il parametro querystring se esiste, oppure ""
    '--------------------------------------------------------------------------------------------------
    Function RequestParams(nome As String) As String
        Dim s As String = Trim(System.Web.HttpContext.Current.Request.Form(nome))

        If s = "" Then
            Return Trim(System.Web.HttpContext.Current.Request.QueryString(nome))
        Else
            Return s
        End If
    End Function

</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <h1>b.aspx</h1>
            <label>Utente: </label><asp:Label ID="Label1" runat="server" Text="" EnableViewState="false"></asp:Label>
        </div>
    </form>
</body>
</html>


Io utilizzo da tanti anni, forse dai tempi di asp, la funzione RequestParams.
Come vedi, prima cerca il parametro di dato name dentro Request.Form. Se non la trova tenta la ricerca in Request.QueryString. Se non trova niente restituisce la stringa vuota ""
427 messaggi dal 13 novembre 2009
Bel metodo attenzione alla dimensione
5 messaggi dal 11 aprile 2020
Ciao Flavio. Grazie innanzi tutto della disponibilità. Sto procedendo come mi hai suggerito:
file 1 (Login) chiamante

<%@ Page Language="VB src="Cls_Login.cs" %> 'faccio la chiamata alla classe
<script runat="server">
Sub Page_Load(obj As Object, e As System.EventArgs)
End Sub
</script>

<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">

<body>


<form id="Login" runat="server" action="CtrlLogin.aspx" method="post" >

<table align="center">
<tr><th><h3></h3> &nbsp; SiGen &nbsp; Riconoscimento Utente</h3> <br />&nbsp; </th></tr>
<tr><td>Utente &nbsp; &nbsp; &nbsp;: <asp:TextBox ID="Utente" runat="server" /> </td></tr>
<tr><td>Password : <asp:TextBox ID="Password" runat="server" /></td></tr>
<tr><td align="center">
<asp:Button runat="server" ID="BtmInvio" Text=" Accedi " BorderStyle="Ridge" /></td></tr>
</table>
</form>

</body>
</html>
-----------------------
classe: Cls_Login.cs

private void BtmInvio_Click(object sender, System.EventArgs e)
{
//Utente.text and Password.text are webform
//controls
Session["Utente"] = Utente.Text;
Session["Password"] = Password.Text;
Server.Transfer("CtrlLogin.aspx");//provo questo
//Response.Redirect."CtrlLogin");
}
--------------------------
--------------------------
File chiamato; (CtrlLogin)

<%@ Page Language="VB" Src="Destinazione.cs" %> ' includo la classe 2 con la Session


<script runat="server">
Dim Conn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Softlab\banking.mdb")



Sub Page_Load(obj As Object, e As System.EventArgs)

Dim User, Psw As String

Response.Write("User, 1-" & User)
Response.Write("Password, 2-" & Psw)

Exit Sub

End Sub


</script>

<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">

</head>
<body>

</body>
</html>
------------------------------
------------------------------
Classe Destinazione.cs incluso in CtrlLogin

private void Page_Load
(object sender, System.EventArgs e)
{
User = Session["Utente"].ToString();
Psw = Session["Password"].ToString();
Session.Remove("Utente");
Session.Remove("Password");
}
----------------
** Eseguo ** ... e ...

Errore server nell'applicazione '/'.

Errore del parser

Descrizione: Errore durante l'analisi di una risorsa necessaria per soddisfare la richiesta. Rivedere i dettagli relativi all'errore e modificare in modo appropriato il file di origine.

Messaggio di errore del parser: Il formato del blocco server non è corretto.

Errore nel codice sorgente:


Riga 1: <%@ Page Language="VB src="Cls_Login.cs" %>
Riga 2: <script runat="server">
Riga 3: Sub Page_Load(obj As Object, e As System.EventArgs)

???????????????????????????
Nulla. Che faccio ? Grazie ancora ...!

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.