“Il nome non esiste nel contesto corrente” a pagina ASPX

Ho dato un’occhiata alle domande simili ( Uno ,Due), ma sembrano non mi forniscono una soluzione :S

Sto cercando di aggiungere un campo di un form di registrazione che è già pre-costruito (cioè viene fornito con) in ASP.Net Modulo Web.

Ciò che sto facendo, in Register.aspx.cs backend cerco di ottenere il valore txtCompanyInput.Text();:

    protected void RegisterUser_CreatedUser(object sender, EventArgs e)
    {
       ... //some code here 

       String CompanyName = txtCompanyInput.Text();

       ... //other code here

       Response.Redirect(continueUrl);
    }

Il Register.aspx si presenta in questo modo:

    ...
    <li>
        <asp:Label runat="server" AssociatedControlID="ConfirmPassword">
           Confirm password</asp:Label>
        <asp:TextBox runat="server" ID="ConfirmPassword" TextMode="Password" />
        <asp:RequiredFieldValidator runat="server" ControlToValidate="ConfirmPassword"
           CssClass="field-validation-error" Display="Dynamic"
           ErrorMessage="The confirm password field is required." />
        <asp:CompareValidator runat="server" ControlToCompare="Password" 
           ControlToValidate="ConfirmPassword"
           CssClass="field-validation-error" Display="Dynamic"
           ErrorMessage="The password and confirmation password do not match." />
    </li>
    <li>
           <asp:TextBox ID="txtCompanyInput" runat="server"></asp:TextBox>
    </li>
    ...

Quando cerco di creare il progetto mi sono imbattuta in un errore che dice:

Error 1 The name 'txtCompanyInput' does not exist in the current context c:\users\...\Account\Register.aspx.cs 62 34 ProjectTest

C’è un motivo per cui io non sono in grado di fare riferimento il txtCompanyName campo nel backend?

  • il controllo non viene aggiunto nel Registro.designer.cs
  • Si prega di controllare il file di progettazione! Potrebbe essere il colpevole!
  • Vedo che ha fatto! Aggiunto protected global::System.Web.UI.WebControls.TextBox txtCompanyInput; per il Register.aspx.designed.cs file
  • Sto cercando di capire cosa potrebbe aver causato questo problema. Qualcuno può far luce in questo? Normalmente non è necessario modificare desinger file manualmente la maggior parte del tempo. Una generazione dopo l’aggiunta del controllo nel file aspx sarebbe sufficiente, no?
  • Ho dovuto aggiungere controlli manualmente prima, è fastidioso, ma di solito è perché qualcosa di diverso nel vostro progetto non è giusto. Anche riavviare Visual Studio a volte cancella questo.
InformationsquelleAutor Serge P | 2014-06-03



2 Replies
  1. 1

    Ehsan Sajjad era sulla strada giusta. Il Register.aspx.designer.cs file non è stato in fase di aggiornamento.

    Ho finalmente capito che questo era dovuto al Textboxs e Labelessere inseriti all’interno di asp:CreateUserWizard di blocco che non si deve fare. Anche dopo aggiungere manualmente gli elementi per la designer.cs file genera un errore quando si fa riferimento alla Textbox (riferimento a un Oggetto non impostato su un’istanza di un oggetto)

    Avrei incluso un grande segmento di codice da Register.aspx file nella mia domanda iniziale.

  2. 1

    Se si utilizza VS2013 update 5 come me, fare questi passaggi per rigenerare il file di progettazione:

    1. Eliminare il detto Registro.designer.cs

    2. Evidenziare Registro.aspx’ (deve fare!)

    3. Andare in Menu->’Progetto’, Clicca su ‘la Conversione di Applicazioni Web’

    Fare clic destro su qualsiasi cosa in esplora soluzioni NON ti danno scelta ‘la Conversione di web application’.

    Spero che questo aiuta alcuni principianti.

Lascia un commento