質問
正しく動作しない、ひどく書かれた ASP.NET コードがあります (図を参照)。私はこのコードの保守とバグ修正を任されていますが、ほとんど頭に入っていない状態です。
残念ながら書き直す時間がありません。
誰かがこれを手伝ってくれたら素晴らしいでしょう:
(コード):ここで提供されます (最小限の難読化が必要です)。http://mastergeektheater.com/issues.txt
何をすべきか:ショッピング カート アプリケーションから注文を受け取り、注文されたオブジェクトの数量に基づいてテキスト ボックスのテーブルを作成します。全体が検証されると (submit_Click())、追加の指示を含む div が表示され、入力フィールドがグレー表示されるため、入力された内容は引き続き確認できますが、それ以降は影響を与えることはできません。入力された各メールアドレスにメールが送信されます。
実際に何を行うか:注文を受け取り、入力した内容を正しく表示します。送信時に、すべての「必須」フィールドのバリデーターが起動します。Vaild の場合は、比較バリデーターが起動します。ここのどこかで、すべてが南に向かっています。」
最初のユーザーを除く、テーブル内のすべての入力エリアが消えます。比較が成功するとポストバックされ、最初のユーザーがそこに表示され (グレー表示され)、他のユーザーは消えます。比較が失敗した場合、ポストバックは正常に行われず、入力フォームに表示されたままになります。 しかし、最初のユーザーを除くすべての入力フィールドは依然として消えています
これはスタック オーバーフローの適切な質問としては少し具体的すぎることは承知していますが、間違っていると思われる点に分けて質問し、それを修正するためにより具体的な他の質問をしました。残念ながら、うまくいきませんでした。コードは改善されましたが、全体はまだ壊れています。この時点で私は絶望的です。
誰かが助けてくれれば、大きな命の恩人となるでしょう。このひどいコード (そしてひどい質問) を 1 分間でも読み進めてくださった皆さんに、あらかじめ感謝します。
解決
私はこの問題は、この行に起因することができると思います。
Session["quantity"] =(null != Request["quantity1"]) ? Request["quantity1"].ToString() : "1";
あなたは、フォーム上のquantity1というフィールド(隠された/入力)を持っていますか?
それは、クエリ文字列またはフォーム項目のコレクションの一部として渡されていますか?
これは、ループが一度だけ実行されます。
したがって1(背面自体にフォームポスト)となり