Jay*_*zzi 1 c# forms iteration ashx
我有一个html表单提交给C#ashx处理程序,我希望将插入/更新数据库
我用PHP和Coldfusion编写了这个,但我无法弄清楚如何在C#中做到这一点
HTML表单
<form id="copyto">
<input type="hidden" name="operation" value="update" />
<label><input type="checkbox" name="children[]" checked="checked" value="001">
Andrew Regan</label>
<label><input type="checkbox" name="children[]" checked="checked" value="101">
Arthur Regan, III</label>
<input type="checkbox" name="children[]" checked="checked" value="968">
Tim Reagan
</form>
Run Code Online (Sandbox Code Playgroud)
C#ASHX处理程序
foreach(string key in context.Request.Params["children"])
{
ListDictionary updateParams = new ListDictionary();
updateParams.Add("rowid", key);
string sSql = @"insert into temp select * from children where c.id = :rowid";
dbi.ExecuteNonQuerySql(sSql, updateParams);
}
Run Code Online (Sandbox Code Playgroud)
通常我会迭代PHP中的$ _POST ['children'],然后执行sql
这究竟是如何翻译的?
编辑
好吧我几乎得到了这个,但是我的迭代器遍历了所有请求集合变量,我希望它只遍历一个特定的命名变量,在本例中是"children"
即localhost/page?operation = update&children = 9&children = 8&children = 17
foreach(string key in context.Request.QueryString)
{
ListDictionary updateParams = new ListDictionary();
updateParams.Add("row_id", context.Request.QueryString[key]);
string sSql = @"insert into dug select :row_id from dual";
dbi.ExecuteNonQuerySql(sSql, updateParams);
}
Run Code Online (Sandbox Code Playgroud)
我希望它忽略除特定var之外的所有内容
如果你正在做一个帖子.我认为这样的事情会起作用.
<input type="checkbox" name="children" value="108"/>
<input type="checkbox" name="children" value="109"/>
<input type="checkbox" name="children" value="110"/>
<input type="checkbox" name="children" value="111"/>
Run Code Online (Sandbox Code Playgroud)
表单被提交时,浏览器将以逗号分隔的所有值发送到服务器
然后在您的服务器端,您可以这样做:
var selected = context.Request.Form["children"].Split(',');
Run Code Online (Sandbox Code Playgroud)
Selected将是浏览器传入的每个值的字符串数组.然后,您可以循环遍历它们并执行您需要的任何操作.
希望这会有所帮助.