我想学习如何通过传递参数的代码提交表单。
简单形式:testform.aspx
表格
<form id="form1" runat="server">
<div>
<asp:TextBox ID="myname" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button"
onclick="Button1_Click1" />
</div>
</form>
action.aspx
将调用testform.aspx
string testURL = "http://www...../testform1.aspx";
string myParameter = "myname=bob";
using (WebClient wc = new WebClient())
{
wc.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
string HtmlResult = wc.UploadString(testURL, myParameter);
}
它不起作用。
我错过了什么吗?当我在调试模式中检查HtmlResult
的值时,我看到:
<form method="post" action="testform1.aspx" id="form1">
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTE0MDM4MzYxMjNkZIS41aWul6tldK7bcOjKW+U0EcsKsj2DW+D0GaLgyHOb" />
<div>
<input name="myname" type="text" id="myname" />
<input type="submit" name="Button1" value="Button" id="Button1" />
</div>
</form>
myname
属性中没有值...为什么?
我自己测试了testform.aspx
并且它有效。提交时,它会将值保存到文件中。
答案 0 :(得分:1)
您应该使用UploadValues传递值
using (WebClient client = new WebClient())
{
NameValueCollection vals = new NameValueCollection();
vals.Add("myname", "bob");
client.UploadValues("http://www...../testform1.aspx", vals);
}
有关UploadValues方法的更多信息,请访问https://msdn.microsoft.com/en-us/library/9w7b4fz7%28v=vs.110%29.aspx