Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Problema con recupero valori di un form

    Ciao a tutti,
    mi sono recentemente avvicinato a .net e sto incontrando dei problemi con il recupero dei valori di un form nel mio file di codice (CodeFile). In particolare, nella pagina utilizzo i tag HTML <input> impostando l'attributo runat="server", ma nella mia classe che sta dietro la pagina non riesco a recuperare i valori (di un campo text) utilizzando NomeCampo.Value.

    Ho provato ad importare diversi namespace, ma senza risultato.

    form.aspx
    codice:
    <%@ Page Language="VB" AspCompat="true" Inherits="FormCommand" CodeFile="form.aspx.vb" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <%
    	Dim SystemForm As New FormCommand
    
    	If Page.IsPostBack Then
    		SystemForm.Check
    	End If
    %>
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    	<head>
    		<title>Titolo</title>
    		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    	</head>
    	<body>
    	    <div id="main">
    				<form id="MyForm" action="form.aspx" method="post" enctype="multipart/form-data" runat="server">
    					Testo:
    
    					<input type="text" id="MyText" runat="server" />
    
    					<input type="submit" id="MySubmit" />
    
    				</form>		
    	    </div>
    	</body>
    </html>

    form.aspx.vb
    codice:
    Partial Public Class FormCommand
    	Inherits System.Web.UI.Page
    
    	Public ErrorMessage As String
    
    	Public Sub Check()
    		' MyText
    		If (MyText.Value = "") Then
    			ErrorMessage = "Il campo MyText non &egrave; valido"
    		End If
    	End Sub
    End Class
    L'errore mi viene dato alla riga
    codice:
    If (MyText.Value = "") Then
    ed è

    System.NullReferenceException: Object reference not set to an instance of an object


    Qualcuno sa a cosa potrebbe essere dovuto?

    Grazie mille!

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116

    Re: Problema con recupero valori di un form

    Originariamente inviato da McSim
    ... Qualcuno sa a cosa potrebbe essere dovuto?
    Prova così:

    pagina
    codice:
    <%@ Page Language="VB" AutoEventWireup="false" CodeFile="FormCommand.aspx.vb" Inherits="FormCommand" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server" enctype="multipart/form-data">
        <div>
            Testo:
    
            <input type="text" id="MyText" runat="server" />
    
            <input type="submit" id="MySubmit" runat="server" />
    
            <asp:Literal ID="ErrorMessage" runat="server" EnableViewState="false"></asp:Literal>
        </div>
        </form>
    </body>
    </html>
    codice
    codice:
    Option Strict On
    Partial Class FormCommand
        Inherits System.Web.UI.Page
    
        Protected Sub Check()
            If (MyText.Value = "") Then
                Me.ErrorMessage.Text = "Il campo MyText non è valido"
            Else
                Me.ErrorMessage.Text = ""
            End If
        End Sub
    
        Protected Sub MySubmit_ServerClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles MySubmit.ServerClick
            Check()
        End Sub
    End Class
    Pietro

  3. #3
    Grazie Pietro, così funziona!

    Dopo voglio capire bene anche il perchè funziona e il perchè non funzionava prima, intanto però ho un altro problema: all'interno del file di codice non riesco ad accedere a tutte le variabili del sito, c'è un modo per riuscirle a leggere senza doverle passare manualmente come proprietà?

    L'obiettivo di questo file di codice è quello di controllare i form ed eseguire i comandi (insert su db, invio mail, etc.), per cui spesso devo utilizzare queste variabili.

    Simone

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    :master: purtroppo non ho capito
    Pietro

  5. #5
    Provo a spiegarmi meglio!

    Quella pagina, e il relativo file di codice, fanno parte di un sito che ha alcune variabili "globali" (ad esempio il path dove salvare i files). Queste variabili non sono salvate nel file web.config, ma in un file aspx incluso in ogni pagina.

    Io ho la necessità che queste variabili siamo visibili all'interno del file di codice (ad esempio per salvare il file appena caricato nella cartella giusta). Se possibile, però, vorrei evitare di dover passare, al file di codice del form, tutte le variabili avvalorando le relative proprietà della classe (spero di essere riuscito a spiegarmi!).

    Grazie mille per l'aiuto!

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Ho capito.
    Per prima cosa bisogna dimenticarsi di asp perchè asp.net è un ambiente diverso.
    Detto questo, ti crei una directory chiamata:

    App_Code

    lì dentro ci metti il codice che è comune al sito.
    Per esempio ti crei un modulo o una classe con tutti gli elementi shared (static in c#)

    Per esempio:


    Option Strict On
    Imports Microsoft.VisualBasic
    Public Module MioModulo
    Public ReadOnly Property StringaConnessione() As String
    Get
    Return ...
    End Get
    End Property
    End Module


    e, da qualunque parte, richiami con:

    dim s as string=MioModulo.StringaConnessione
    Pietro

  7. #7
    Ok, immaginavo la direzione fosse questa!

    Provo e ti faccio sapere, intanto grazie mille per l'aiuto!

  8. #8
    Avevo già un namespace in cui erano presenti tutte le funzioni "standard" che ho creato nel tempo; mi è bastato aggiungere una nuova classe con le variabili e tutto funziona perfettamente.

    Grazie mille per l'aiuto!

  9. #9
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da McSim
    Avevo già un namespace in cui erano presenti tutte le funzioni "standard" che ho creato nel tempo; mi è bastato aggiungere una nuova classe con le variabili e tutto funziona perfettamente.

    Grazie mille per l'aiuto!
    Sì, ma attento! se le "funzioni standard" sono riutilizzabili da più progetti, conviene creare un progetto di libreria di classi. Dentro la directory App_Code conviene mettere solo la libreria valida per il progetto corrente.
    Pietro

  10. #10
    Si si certo, nel namespace "standard" ho messo solo le variabili di configurazione standard. Il resto è tutto in file a parte!

    Grazie mille!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.