ASP.NET .aspx页面:如何通过Javascript发送额外的数据?

时间:2013-02-22 18:27:54

标签: javascript asp.net

我有一个老式的ASP.NET plain .aspx页面。 它有一些服务器端控件,一些回发按钮等等。

我将在客户端添加一些Javascript来创建用户构建的额外数据列表。 我事先不知道会发送多少额外数据。例如,我不能只添加10个隐藏的输入字段并在代码隐藏中检查它们的值。

可能会发回20个值,可能有100个。

将这些额外数据发回服务器的最佳方法是什么?

我可以想象它工作的一种方法是添加一些虚拟隐藏列表控件,由客户端上的JS填充。它感觉很hacky,但我想我可以让它发挥作用。

有更好的方法吗?

有些注意事项:

  • 我没有使用MVC或AJAX
  • 不使用JQuery(虽然我可以,但我想)

我真的只是试图掌握我的选择。

谢谢!

1 个答案:

答案 0 :(得分:1)

如果不需要通过ajax进行POST,则可以使用javascript创建控件,然后使用Request.Form检索输入值。

ASPX:

<script>
    document.write('<input name="field1" type="text" />' + 
                   '<input name="field2" type="text" />');
</script>

<asp:Button ID="btn" Text="button" runat="server" onclick="btn_Click" />

ASPX.CS:

protected void btn_Click(object sender, EventArgs e)
{
    var keys = Request.Form.AllKeys;
    foreach (var key in keys)
    {
        if (key.StartsWith("field"))
            Response.Write(Request.Form[key]);
    }
}