C# 用c获取jquery生成的html的值#

C# 用c获取jquery生成的html的值#,c#,jquery,html,asp.net,forms,C#,Jquery,Html,Asp.net,Forms,我试图获取使用JQuery生成的textbox的值。文本框一次添加到第3页。每3个框代表一个项目 添加创建另外3个大小、价格和颜色框。 您似乎可以从Request.form中获取所有信息,它以某种方式为您提供了NameValueCollection,如果我错了,请纠正我,这些值应该存储在该集合中。这是我似乎无法理解的。基于该集合,如何查找文本框的名称及其值 创建框的JQuery: <script type="text/javascript"> counter =

我试图获取使用JQuery生成的textbox的值。文本框一次添加到第3页。每3个框代表一个项目

添加创建另外3个大小、价格和颜色框。 您似乎可以从
Request.form
中获取所有信息,它以某种方式为您提供了
NameValueCollection
,如果我错了,请纠正我,这些值应该存储在该集合中。这是我似乎无法理解的。基于该集合,如何查找文本框的名称及其值

创建框的JQuery:

 <script type="text/javascript">
         counter = 1;

         function foo() {
             $(".form").append('<div id=item' + counter + '><hr/><div class="innerItem"><p>size</p><input type="text" name="item" /><p>color</p><input type="text" name="item" /><p>price</p><input type="text" name="item" /></div>');
             del = $("#item" + counter);
             del.append('<input type="button" class="remove" value="remove" id="' + counter + '"/>');
             counter++;
         }

         $("body").on('click', '.remove', function () {
             var id = $(this).attr("id");
             $("#item" + id).remove();
         });
</script>

计数器=1;
函数foo(){
$(“.form”).append(“
大小

颜色

价格

”); del=$(“#项目”+计数器); 删除。附加(“”); 计数器++; } $(“body”)。在('click','remove',函数(){ var id=$(this.attr(“id”); $(“#项”+id).remove(); });
这是我在代码背后的东西。主要使用这段代码来了解它是如何工作的

  protected void Page_Load(object sender, EventArgs e)
        {
            if(IsPostBack)
            {
            NameValueCollection data;

            //Load Form variables into NameValueCollection variable.
            data = Request.Form;
            // Get names of all forms into a string array.
            String[] arr1 = data.AllKeys;



            for (int loop1 = 0; loop1 < arr1.Length; loop1++)
            {
                Response.Write("Form: " + arr1[loop1] + "<br>");
            }

            }
        }
受保护的无效页面加载(对象发送方,事件参数e)
{
如果(iPostBack)
{
收集数据;
//将表单变量加载到NameValueCollection变量中。
data=Request.Form;
//将所有表单的名称放入字符串数组。
字符串[]arr1=data.AllKeys;
for(int loop1=0;loop1”;
}
}
}
这是codebehind生成的:

形式:\事件目标

形式:\事件参数

形式:uu视图状态

表格:项目

我想我想要的数据在
项中。我只是不明白这是否正确,或者如何访问
项中的内容

这也可能是100%错误的。我在网上读了一些信息,可能没有正确理解

你想要什么

var postedValue = Request.Form["item"];
所有3个文本框均命名为“项”

您希望将文本框的名称更改为

function foo() {
     $(".form").append('<div id=item' + counter + '><hr/><div class="innerItem"><p>size</p><input type="text" name="item-size" /><p>color</p><input type="text" name="item-color" /><p>price</p><input type="text" name="item-price" /></div>');
     del = $("#item" + counter);
     del.append('<input type="button" class="remove" value="remove" id="' + counter + '"/>');
     counter++;
 }

有关请求的更多信息,请参阅。表单

首先,您应该为每个文本框指定一个唯一的名称,以便在发布时区分它们

$(“.form”).append(“
大小

颜色

价格

”)

然后可以使用GetValues方法在代码隐藏中获取这些数组

    protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack)
        {
            string[] Sizes = Request.Form.GetValues("item-size");
            string[] Colors = Request.Form.GetValues("item-color");
            string[] Prices = Request.Form.GetValues("item-price");
        }
    }
或者您可以直接将这些数组压缩到一个“项”数组中


每个项目都有属性大小、颜色和价格。

请求。表单按名称查找表单元素(如果有帮助的话)?我计划将这些项目作为批量产品添加到产品数据库中。将它们分组,使1个尺寸、颜色和价格组成1个项目。那么,给它们装上拉链是最好的选择吗?@jackncoke这是一个相当随意的选择;如果您需要在代码中进一步处理数据,那么它将有助于提高可读性。@sircapsalot想详细说明吗?你指的是哪些惯例
应该是
我知道我很迂腐,但你应该纠正OP偏离常规:)@sircapsalot你是对的,我复制OP的字符串时甚至没有注意到。。我会编辑!
    protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack)
        {
            string[] Sizes = Request.Form.GetValues("item-size");
            string[] Colors = Request.Form.GetValues("item-color");
            string[] Prices = Request.Form.GetValues("item-price");
        }
    }
            var items = Request.Form.GetValues("item-size")
                .Zip(Request.Form.GetValues("item-color"), (s, c) => new { s, c })
                .Zip(Request.Form.GetValues("item-price"), (a, p) => new { Size = a.s, Color = a.c, Price = p });