1

昔ながらの ASP.NET プレーン .aspx ページがあります。サーバー側のコントロール、ポストバックするボタンなどがあります。

クライアント側に Javascript を追加して、ユーザーが作成する追加データのリストを作成します。この余分なデータがどれだけ送信されるかは事前にわかりません。したがって、たとえば、10 個の非表示の入力フィールドを追加して、コードビハインドでそれらの値を確認することはできません。

20 個の値が返される場合もあれば、100 個の値が返される場合もあります。

この余分なデータをサーバーに POST する最良の方法は何ですか?

私が想像できる 1 つの方法は、ダミーの隠しリスト コントロールを追加して、クライアント上の JS によって入力されるようにすることです。ハックな感じですが、うまくいくと思います。

より良い方法はありますか?

注意すべき点:

  • MVC または AJAX を使用していない
  • JQuery を使用していない (可能だと思いますが)

私は本当に自分のオプションを理解しようとしているだけです。

ありがとう!

4

1 に答える 1

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]);
    }
}
于 2013-02-22T18:56:00.757 に答える