Asp.net aspx:表单始终转发到同一页面
在products.aspx页面上,我创建了一个表单:Asp.net aspx:表单始终转发到同一页面,asp.net,forms,Asp.net,Forms,在products.aspx页面上,我创建了一个表单: <form id="send_info_form" method="post" action="send_email.aspx"> <input type="text" name="the_name /> <input type="submit" /> </form> 在ASP.NET中,默认情况下,标记将始终发布到同一页面。这允许您在ASPX页面中处理代码隐藏中的任何事件。你的问题不清楚
<form id="send_info_form" method="post" action="send_email.aspx">
<input type="text" name="the_name />
<input type="submit" />
</form>
在ASP.NET中,默认情况下,标记将始终发布到同一页面。这允许您在ASPX页面中处理代码隐藏中的任何事件。你的问题不清楚你到底想做什么。我可以想到三种可能的情况:
1) 您希望回发到同一页面,并根据处理结果切换UI元素(其他面板等)的可见性,或者在处理完成后将用户重定向到第二个目标页面。这是最常见的场景,也是我建议采用的方法,因为它将表单处理的所有逻辑保持在一个地方
2) 您可以指定一个PostBackUrl来为按钮控件等指定另一个(ASP.NET)页面。从那里,您可以使用PreviousPage属性从第一页上的元素到第二页上的元素进行处理。有关更多信息,请参阅
3) 如果您有一个单独的页面希望发布到一个您无法控制的非ASP.NET的页面(即,另一个站点的表单或您运行的PHP/ASP3.0站点),那么事情会变得非常困难。ASP.NET将所有内容放在一个巨大的元素中。由于标记不能可靠地嵌入到HTML中,您必须从codebehind手动执行静默POST,或者使用Javascript在提交时悄悄地提交ajax请求。看起来您对ASP.NET的逻辑工作方式有误解-ASP.NET的模式与PHP或ASP的模式大不相同
看起来您更多地采用了ASP经典或PHP方法来直接处理表单和POST值的登录页,而不再需要这样做。您也不需要单独的页面来处理表单提交的逻辑;所有这些都由提交页面的codebehind中的事件处理程序处理
您应该使用ASP.NET的服务器控件来处理所有输入,而不是直接处理输入元素
你应该做的是:
在Products.aspx页面中:
E-mail Address: <asp:TextBox runat="server" ID="txtEmail" />
<asp:Button runat="server" ID="btnSubmit" OnClick="btnSubmit_Click" Text="Submit" />
我不能像普通形式一样使用它吗?
protected void btnSubmit_Click(object sender, EventArgs e) {
string sendEmailTo = txtEmail.Text;
// insert mail sending logic here
}