我在.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;
答案 0 :(得分:1)
在母版页cs文件中添加setter和getter
public string FirstName
{
get
{
return firstname.Text;
}
set
{
firstname.Text = value;
}
}
使用以下代码示例
访问子页面中的FirstNameMasterPage masterPageObj = this.Master;
string firstNameChildObj = masterPageObj.FirstName;
答案 1 :(得分:0)
应该是:
message.Body = "First Name: " + firstname.Text;