ASP.NET Webフォームで「1 つのページには、1 つのサーバー側 Form タグのみを指定できます」のエラー

概要

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つあればどちらか削除してください。

※マスターページ(テンプレート)を用いている場合、マスターページと個別ページの両方に記載されてしまうことがあるので注意してください。

コメントする

CAPTCHA