1

ページがレンダリングされる前にc#コードで入力される2つのDropDownListがあります。ページがポストバックされると、変更された値を正常に取得できます。ただし、1つの条件は、最初のDropDownListで値が変更された場合、2番目のドロップダウンリストに再入力することです。私はAjax呼び出しを使用してこれを行っており、すべてが視覚的にうまく機能しています。

問題は、2番目のDropDownListがAjaxコードを介して入力されるという条件が発生した場合、リストアイテムと選択された値がポストバックされたときにC#コードに表示されないことです。私はこれが起こらないことを読みました。

DropDownListにはID="cboMutations"

私はついに次の方法を使用してこれを機能させました:

        Int32 id = 0;
        if (!string.IsNullOrEmpty(Request.Form["ctl00$MainContent$cboMutations"]))
        {
            Int32.TryParse(Request.Form["ctl00$MainContent$cboMutations"], out id);
        }

私の主な質問は次のとおりです。

ctl00$MainContent$cboMutationsこの方法でプロパティを参照するためにこれを使用しても安全ですか?

開発中は機能しますが、展開すると機能しますか?

4

1 に答える 1

0

Asp.netは、受け入れるデータについて厳密です。aspドロップダウンリストでは、そのようなデータを送信することはできません。これにより、ユーザーはサーバーによって提示された値のみを送信するようになります。

あなたの場合、あなたはhtmlコントロールを使用していて、asp.netの作り付けのセキュリティを渡すことによってです。悪意のあるユーザーが入力を使用して無効なデータを送信しようとする可能性がある場合に備えてプログラムする必要がありますctl00$MainContent$cboMutations

データをintに解析しているため、悪意のあるユーザーが実行できることはほとんどありません。展開するときも安全である必要があります。

于 2013-02-28T09:09:10.310 に答える