每当我在PageLoad()中测试IsPostBack时,无论是否存在发布数据,都会返回false.我的第一反应是检查表单或提交按钮中是否缺少runat ="server"标记.但是,它们都已添加,并且WriteEmail.aspx页面仍然总是为IsPostBack返回false.我也尝试使用IsCrossPagePostBack代替IsPostBack.
ListInstructors.aspx:
<form runat="server" method="post" action="WriteEmail.aspx">
...
<input type="submit" id="writeEmail" value="Write Email" runat="server" />
</form>
Run Code Online (Sandbox Code Playgroud)
WriteEmail.aspx:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Response.Redirect("ListInstructors.aspx");
}
}
Run Code Online (Sandbox Code Playgroud)
Joe*_*orn 13
发布!=回发. 回发是指您回发到同一页面.表单上的操作将发布到新页面.
看起来你正在做的就是使用WriteEmail.aspx页面发送消息,然后回到原来的位置.你甚至没有显示表格来收集那里的文字.这是一个非常......经典的ASP-ish ...处理事物的方式.
相反,将您使用的代码放在类不同的类中发送消息,如果需要,将该类放在App_Code文件夹中.同时将提交按钮更改为a <asp:button ... /> 然后您只需将服务器的Click事件中的代码称为按钮,就不要离开您的ListInstructors.aspx页面.
在回复您的评论时:不.来自MSDN:
...通过将页面URL分配给实现IButtonControl接口的按钮控件的PostBackUrl属性来发出跨页请求.