将文本框值传递给ASP.NET类

时间:2012-10-09 13:05:34

标签: asp.net

我总是遇到这个错误:编译错误消息:CS0103:当前上下文中不存在名称'txtUserName'

mypage.aspx

<% @Page Language="C#" Inherits="myclass" Src="myclass.cs" %> 
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Login Form</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<table>
<tr>
<td>
Username:
</td>
<td>
<asp:TextBox ID="txtUserName" runat="server"></asp:TextBox>

</td>
</tr>

<tr>
<td>
</td>
<td>
<asp:Button ID="btnSubmit" runat="server" Text="Submit" onclick="Writedata" />
</td>
</tr>
</table>
</div>
</form>
</body>
</html>

myclass.cs

using System;
using System.Data;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using System.Net;
using System.Text;

public class myclass:Page 
{
    protected void WriteData(object sender, EventArgs e){

    string customer_id=txtUserName.Text;



    string postData="customer_id="+customer_id;

    byte[] data= Encoding.UTF8.GetBytes (postData);

    // Prepare web request...
    HttpWebRequest myRequest =
        (HttpWebRequest)WebRequest.Create("http://myserverurl.com/mypage.php");
    myRequest.Method = "POST";
    myRequest.ContentType="application/x-www-form-urlencoded";
    myRequest.ContentLength = data.Length;
    Stream newStream=myRequest.GetRequestStream();
    // Send the data.
    newStream.Write(data,0,data.Length);
    newStream.Close();
    }
}

这里有任何帮助吗?

谢谢,

1 个答案:

答案 0 :(得分:1)

尝试将类声明更改为“public partial class myclass:System.Web.UI.Page”。我认为,partial关键字对于编译器来说至关重要,因为他们知道类定义的平衡是在临时/中间文件中创建的,否则就不会知道。