我正在尝试实施Sign Up
的{{1}} api。他们给了我这个HTML代码。如果我将其保存为HTML页面,则运行正常。
我想要做的是将此表单转换为将在按钮上执行的C#代码。 HTML部分看起来很好,但今天是我使用ASP.net的第一天,我不知道在代码隐藏.cs文件中放入什么代码。搜索了很多,我感到非常困惑。
单击提交按钮时单击此方法:
Constant Contact
这是我的ui代码:
protected void buttonId_Click(object sender, EventArgs e)
{
}
以下是我通过不断联系获得的HTML代码:
<asp:TextBox ID="TextBox3" runat="server" class="name" value="First Name" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'First Name';}"></asp:TextBox>
<asp:TextBox ID="TextBox4" runat="server" class="name" value="Last Name" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Last Name';}"></asp:TextBox>
<asp:TextBox ID="TextBox2" runat="server" class="name" value="Join our mailing list" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Join our mailing list';}"></asp:TextBox><br>
<asp:Button id="buttonId" OnClick="buttonId_Click" class="btn btn-info sub1" runat="server" Text="SUBSCRIBE">
</asp:Button>
答案 0 :(得分:1)
以下是您可以在按钮OnClick事件中放置的一些代码的示例。此POST的数据到另一个URL。
希望你能弄清楚这段代码中发生了什么。基本上它是使用HTML表单中的所有数据构建一个字符串(数据),并使用HTTP POST将其提交给另一个网站。
您很可能还需要检查来自其他网站的回复。
string remoteUrl = "https://visitor2.constantcontact.com/api/signup";
ASCIIEncoding encoding = new ASCIIEncoding();
string data = "ca=my-secrect-key&list=3&source=EFD&required=list,email&url=&email=" + Server.UrlEncode(TextBox1.Text) + "&first_name=" + Server.UrlEncode(TextBox2.Text) + "&last_name=" + Server.UrlEncode(TextBox3.Text);
byte[] bytes = encoding.GetBytes(data);
HttpWebRequest httpRequest = (HttpWebRequest)WebRequest.Create(remoteUrl);
httpRequest.Method = "POST";
httpRequest.ContentType = "application/x-www-form-urlencoded";
httpRequest.ContentLength = bytes.Length;
using (Stream stream = httpRequest.GetRequestStream())
{
stream.Write(bytes, 0, bytes.Length);
stream.Close();
}