概要
ASP.NET Webフォームで「1 つのページには、1 つのサーバー側 Form タグのみを指定できます」のエラーが出た場合の原因と対応方法についてです。
前提環境
- Windows 10
- Visual Studio Professional 2019
- .NET Framework 4.2
- C#
原因について
単純に「formタグ」が2つ以上設定されているために発生するエラーです。
通常のHTMLであればformタグは2つあっても問題ありませんが、ASP.NetのWebフォームでは1画面にformタグは1つまで、となっています。
なぜならば通常のホームページと異なり、画面上で「ボタンを押した」「値が変わった」など、Windowsアプリ開発で「イベント」と呼ばれているものが発生した場合、WebフォームではサーバーにPost送信され、画面が更新されるためです。これは先程述べた「イベント」駆動(Driven)の開発をWeb上の開発に当てはまめて開発効率を向上させる狙いがあります。
しかしながら、それ故1つの画面に1つのFormとして全てのイベントを集約するようになっています。
対応方法について
対応方法はとても単純で、1画面に1つのformタグとしてください。formタグが2つあればどちらか削除してください。
※マスターページ(テンプレート)を用いている場合、マスターページと個別ページの両方に記載されてしまうことがあるので注意してください。