2013-08-23 73 views
1

我正在做一個網站,使用asp.net發送信息到MySQL服務器。碼。有林的問題是,當我調試的代碼,並推出網頁,我得到這些錯誤:「」在當前上下文中不存在?

enter image description here

林不知道爲什麼,我有這樣的錯誤。 這裏是我的代碼:

Default.aspx的

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master"     AutoEventWireup="true" 
     CodeFile="Default.aspx.cs" Inherits="_Default"%> 
     <asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"> 
    <form id="form1" runat="server"> 
    <div> 
    <table width="300px" > 
    <tr> 
    <td>First Name</td> 
    <td> 
     <asp:TextBox ID="txtFirstName" runat="server"></asp:TextBox> 
     </td> 
    </tr> 
     <tr> 
    <td >Last Name</td> 
    <td> 
     <asp:TextBox ID="txtLastName" runat="server"></asp:TextBox> 
      </td> 
    </tr> 
     <tr> 
    <td>User Name</td> 
    <td> 
     <asp:TextBox ID="txtUserName" runat="server"></asp:TextBox> 
      </td> 
    </tr> 
     <tr> 
    <td>Password</td> 
    <td> 
     <asp:TextBox ID="txtPassword" runat="server"></asp:TextBox> 
      </td> 
    </tr> 
     <tr> 
    <td>Email Address</td> 
    <td> 
     <asp:TextBox ID="txtEmail" runat="server"></asp:TextBox> 
      </td> 
    </tr> 
     <tr> 
    <td>&nbsp;</td> 
    <td> 
     <asp:Button ID="btnSave" runat="server" Text="Save" onclick="btnSave_Click" /> 
      </td> 
    </tr> 
     <tr> 
    <td>&nbsp;</td> 
    <td> 
     <asp:Label ID="lblError" runat="server" Text=""></asp:Label> 
      </td> 
    </tr> 
    </table> 
    </div> 
    </form> 
    </asp:Content ID="Content1" runat="server" ContentPlaceHolderID="MainContent"> 

Default.aspx.cs

public partial class _Default : System.Web.UI.Page 
    { 
protected void Page_Load(object sender, EventArgs e) 
{ 

} 
protected void btnSave_Click(object sender, EventArgs e) 
{ 
    try 
    { 

     string cnnString = "Server=localhost;Port=1111;Database=ci_series;Uid=asdfasdf;Pwd=*******"; 


     MySqlConnection connection = new MySqlConnection(cnnString); 


     string cmdText = "INSERT INTO membership (first_name ,last_name ,username ,password ,"; 
     cmdText += "email_address)VALUES (first_name ,last_name ,username ,password ,email_address);"; 

     MySqlCommand cmd = new MySqlCommand(cmdText, connection); 


     cmd.CommandType = CommandType.Text; 
     cmd.Parameters.Add("?first_name", MySqlDbType.VarChar).Value = txtFirstName.Text; 
     cmd.Parameters.Add("?last_name", MySqlDbType.VarChar).Value = txtLastName.Text; 
     cmd.Parameters.Add("?username", MySqlDbType.VarChar).Value = txtUserName.Text; 
     cmd.Parameters.Add("?password", MySqlDbType.VarChar).Value = txtPassword.Text; 
     cmd.Parameters.Add("?email_address", MySqlDbType.VarChar).Value = txtEmail.Text; 

     connection.Open(); 

     int result = cmd.ExecuteNonQuery(); 

     lblError.Text = "Data Saved"; 

    } 
    catch (Exception ex) 
    { 
     lblError.Text = ex.Message; 
    } 
} 
    } 

我該如何解決這一問題? 「目前情況下不存在」是什麼意思?提前致謝!

+2

''instead'「 – PiLHA

+0

好吧,工作,但現在我有這個錯誤:'異常詳細信息:System.Web.HttpException:一頁可以只有一個服務器端表格標籤.' –

+2

這是一個內容頁面,您的母版頁已經有了'表格'。 –

回答

3

1)確保runat =「server」位於母版頁的html標籤上。

2)有時你會因爲和程序集緩存問題而出現這個錯誤,因爲VS會對實際需要重新編譯的內容感到困惑。 - 我只是刪除緩存項目,並重新編譯通常,確定可能有一個以上的錯誤

+0

是的runat =「服務器」是錯誤。我不能發佈我的解決方案,直到我得到10代表,但這是我的第二個錯誤的修復。謝謝!! –

+0

一定要修復其他問題 - 額外

標籤也會導致問題 –

+1

此外,VS通常不會隨意混淆,這是因爲另一個(通常是未使用的副本)頁面具有相同的類名,所以VS不要重新編譯你需要的。請參閱清除緩存並重新編譯並不是真正的「解決方案」,但它可以節省您挖掘副本的時間,因此您可以專注於當前正在執行的操作。 –

2

你有2個問題

  1. </asp:Content> instead </asp:Content ID="Content1" runat="server" ContentPlaceHolderID="MainContent">。它已經把評論從piLHa

  2. 你不需要內容頁面form tagform tag已在master page中定義,因此請在您的內容頁面中刪除form tag

2

我有一個類似的問題,當VS2005的aspx/aspx.cs文件變成VS2013中的新項目。我通過創建一個新的Web應用程序來解決這個問題,爲每個aspx頁面創建一個新的webform並複製.aspx和.cs的代碼。一旦被複制,我必須更改.cs文件的第一行,以使用代碼隱藏代碼而不是代碼文件

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Login.aspx.cs" Inherits="_Login" %> 

TO

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="_Login" %> 

我希望這可以幫助別人。

+0

如果您有舊的母版頁或頁面,則創建新頁面並複製內容將解決此問題.... –

-1

Right_click的 「WebApplication的」

Image

,並點擊 「轉換爲Web應用程序」 Image

0

我有同樣的問題,當我與C#ASPX編碼和我想通了這個喜歡那個:

我已經刪除了這個Inherits =「project_name.ClassName從我的XXX.aspx文件錯誤,這是我的XXX.aspx文件中的第一行..然後當我添加Inherits =」project_name。ClassName此代碼將我的XXX.aspx第一行寫入我的文件,然後它解決了我的問題。您應該控制您的XXX.aspx文件中的第一行,您可以刪除Inherits =」project_name.ClassName錯誤....

我希望你能找出問題的這個答案。

好運

0

在@page標籤替換下面的.aspx頁面的代碼

更換this:<%@ Page Language =「C#」AutoEventWireup =「true」CodeBehind =「Test.aspx.cs」Inherits =「Namespace.Test」%>

替換爲:<%@ Page Language =「C#」 AutoEventWireup =「true」CodeFile =「〜/ Test.aspx.cs」CodeBehind =「Test.aspx.cs」Inherits =「Namespace.Test」%>

相關問題