1

JavaScript から C# のコード ビハインドの 1 つの関数にパラメーターを渡そうとしています。

<script type="text/javascript">
    $(document).ready(function () {

        $("#some_id").click(function () {
            var id = document.getElementById('HiddenField2');
            var a = <%=btn_Click(id)%>;
        });

    });
</script>
<asp:HiddenField ID="HiddenField2" runat="server" Value='<%# DataBinder.Eval(Container.DataItem, "item_id")%>' />
code behind
 public string btn_Click(String item_id)
    {
        /*do some thing*/

        return null;
    }  

しかし、このコードは常にコンテキストのエラーを引き起こします。その ID は、このコンテキストでは定義されていません。私が何をしているのか教えてください。

4

2 に答える 2

0

C# のボタン クリック イベントは、ブラウザーが asp.net にデータをポストバックするときにポストバックによってトリガーされます。ここで HiddenField を使用する理由がわかりません。

解決策 1: 最初に btn_Click のコードを HttpHandler (asp.net の *.ashx) に抽出し、次に jQuery などの js フレームワークを使用して Ajax を使用してデータを HttpHandler に送信し、HttpHandler によって返されたデータを js で処理できます。

サンプルコードはこちら

解決策 2: btn_Click のコードがページに関連している場合は、ajax Get メソッドを使用するだけで、データがページに送信され、データから返されたデータも js によって処理されます

最後に、Web を初めて使用する場合は、asp.net MVC を学習または実装することをお勧めします。私の意見では、asp.net Web フォームよりも柔軟性があります。

于 2013-05-11T10:20:00.307 に答える