我需要将文本框信息从.master传递到.cs文件

时间:2015-12-02 16:47:40

标签: c# asp.net forms email

我在.master文件中创建了一个表单,作为页面html的一部分:

<form runat = "server">
     <div class="formcolumn">
        <asp:TextBox runat="server" ID="firstname" type="text" name="firstname" value="" placeholder="First Name" /><br />
        <asp:TextBox runat="server" id="lastname" type="text" name="lastname" value="" placeholder="Last Name" /><br />
        <asp:TextBox runat="server" id="email" type="text" name="email" value="" placeholder="Email" />
    </div>
    <div class="formcolumn">
        <asp:TextBox runat="server" TextMode="MultiLine" id="mystory" name="mystory" placeholder="My Story" />
        <asp:Button runat="server" id="submit" type="submit" name="submit" value="submit" onclick="submit_Click"/>
    </div>
</form>

在.cs文件中,我有事件点击处理程序

protected void submit_Click(object sender, EventArgs e)
{
    using (MailMessage message = new MailMessage())
    {
        message.From = new MailAddress("website@mywebsites.com", "My university");
        message.To.Add(new MailAddress("me@myemail.edu"));
        message.Subject = "Why We Learn Message";
        message.Body = "First Name: " + firstname.Text;
        SmtpClient client = new SmtpClient();
        client.Host = "127.0.0.1";
        client.Send(message);
    }
}

由于某种原因,.cs文件无法访问文本框中的名字,我不确定如何将该信息传递给.cs文件。

编辑: 错误消息显示&#34;名称&#39;名字&#39;在当前上下文中不存在。&#34;

2 个答案:

答案 0 :(得分:1)

在母版页cs文件中添加setter和getter

public string FirstName 
        { 
         get
         { 
         return firstname.Text; 
         } 
         set 
         {
        firstname.Text = value; 
         }
        }

使用以下代码示例

访问子页面中的FirstName
MasterPage masterPageObj = this.Master; 
string firstNameChildObj = masterPageObj.FirstName;

答案 1 :(得分:0)

应该是:

message.Body = "First Name: " + firstname.Text;