我的目标是使用Asp.Net的HttpWebRequest向网页提交多个值,就像它们是从<select>
元素发送一样。
我用于创建数据字符串的代码如下:
NameValueCollection outgoingQueryString = HttpUtility.ParseQueryString(String.Empty);
outgoingQueryString.Add("username", "myusername");
outgoingQueryString.Add("password", "mypassword");
string postData = outgoingQueryString.ToString();
现在让我说我有以下选择例如:
<select name="banana" multiple="">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
我需要提交选项1和2,如何将其添加到查询字符串中?作为数组,还是可以添加多个具有相同名称的值?
提前致谢。
答案 0 :(得分:2)
您可以传递逗号分隔值,因为当您实际发布多选控件时,您会在Request
中获得逗号分隔值,因此要模拟,您可以传递逗号分隔值。
使用HTML后。注意select
是服务器控件。
<form id="form1" runat="server">
<div>
<select name="banana" multiple="" id="sl" runat="server">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<asp:Button ID="btn" runat="server" Text="sub" OnClick="btn_Click" />
</div>
</form>
答案 1 :(得分:1)
您只需使用ArrayList
ArrayList MyArray;
if (Request.QueryString["MyArray"] != null)
{
MyArray = (ArrayList)Request.QueryString["MyArray"];
}
else
{
MyArray = new ArrayList();
}
将值添加到ArrayList
if (MyArray.IndexOf(checkAllIndex) == -1)
{
MyArray.Add(checkAllIndex);
}
从ArrayList
if (MyArray.IndexOf(checkAllIndex) != -1)
{
MyArray.Remove(checkAllIndex);
}