如何使用动态变量请求[“”]?请求[ “@变量”]?

时间:2015-06-10 09:12:29

标签: c# asp.net post razor request

我正在构建一个表单,其中表单上的问题或输入数量因数据库中的值而异。表单上的每个输入都是一种无线电类型。标签的名称是动态的,并使用@db.row.questionID从数据库加载,它看起来像:<span name=@id>,并且通过请求的任何查询等于值1。

我的问题是,我使用post编写了表单,我想将值提交回单独的数据库,但我不知道如何请求多个值,这些值会根据查询动态更改

我写的示例代码,它没有给我任何错误,但它也没有给我任何结果。

    foreach(var prow in poll){
        var Question = prow.PollId;
        if (Request.Form["@prow.PollId"] == "A") {                
            int AnsA = row.ResultsA;
            AnsA = AnsA + 1;
            db.Execute("UPDATE Results SET ResultsA=@0 WHERE ResultsId=@1", AnsA, Question);
        }

我也尝试过:

    if (Request["prow.PollId"] == "B") {
            int AnsB = row.ResultsB;
            AnsB += 1;
            db.Execute("UPDATE Results SET ResultsB=@0 WHERE ResultsId=@1", AnsB, prow.PollId);
        }

1 个答案:

答案 0 :(得分:0)

您想通过动态输入获得价值吗?如果是,您可以试试这个:

 NameValueCollection nvc = Request.Form;
 foreach (var item in Request.Form.AllKeys)
 {
        //do something you want.
        // Examble : if(item == "A")// item will return name of input
        // Note: nvc[item] return value of input
 }

更新:

Request.Form.AllKeys将返回表单中的所有输入名称。

我们通过输入名称的选择使用foreach来lopp。

使用nvc [item]或Request.Form [item]获取输入值。

您可以阅读这篇文章:c#: get values posted from a form