0

私はasp.netフォームを持っています。

ただし、フォーム内のコントロールは、1 つのテキスト ボックスと 2 つのドロップダウン リストが 1 行に並んでいます。

また、ユーザーが行を追加および削除するための「プラス」および「マイナス」ボタンがあります。

フォームが送信されると、これらのコントロールから値を取得します。Request.Form["ControlName"]

しかし、それ["ControlName"]が存在するかどうかを確認する必要があります。

try catchこのように確認するためにそのコードを入れることができます

for(int a=1;a<10;a++)
{
  try 
  {
    Response.Write(Request.Form["ControlName"+a.ToString()]);
  }
  catch {}
}

こうすることで、理論上存在しないコントロールはcatch文でキャッチされます。

しかし、私は別の方法を使用して次のようなチェックをしようとしていますFindControl("ServerControlID")

しかし、それはserver controls唯一のものです。

私のフロントコードは次のようになります

<input type="text" id="txt1" name="txt1"/>

<input type="text" id="txt2" name="txt2"/>

<input type="text" id="txt4" name="txt3"/>

注: 追加できませんrunat="server"。もしそうなら、私は使用することができますFindControl()

4

2 に答える 2

0

サーバー側のコントロール (コード ビハインド) にアクセスする場合、そのコントロールはサーバー コントロールまたは html コントロールである必要がありますが、runat = "server"属性を導入することで、HTML コントロールにアクセスできます。

<input type="text" id="txt1" name="txt1" runat = "server"/>
于 2012-09-11T07:24:11.070 に答える
0

NameValueCollectionによって返されたを使用できますRequest.Form.AllKeys
これはIEnumerable

Linq を使用して、次のように確認します。

for(int a=1;a<10;a++)
{
  var paramName = "ControlName"+a.ToString();
  if(Request.Form.AllKeys.Contains(paramName ))
  {
    Response.Write(Request.Form[paramName ]);
  }
  else
  {
    //key not present
  }
}
于 2012-09-11T08:52:30.837 に答える