コンパイルエラーについて

開発をしていて、コンパイルエラーが発生した場合に、上級エンジニアであれば、エラーを簡単に取って、実行できる状態にすぐ持っていけるかとは思いますが、初心者のエンジニアではそうはいきません。その際にChatGptを使わない手はないです。

以下の様なエラーが発生しました。わからない!(VIisual studio+c#で)

例外がスローされました: ‘System.Web.HttpException’ (System.Web.dll の中) 型 ‘System.Web.HttpException’ の例外が System.Web.dll で発生しましたが、ユーザー コード内ではハンドルされませんでした 型 ‘GridView’ のコントロール ‘MainContent_gvRecent’ は、runat=server を含む form タグの内側に置かなければ成りません。

その際に、ChatGPTにエラーをそのまま貼り付けて下さい。結果以下の的確な対応理由を返答をもらえました。原因は、2だったのですが、あっという間に解決です。すごい。

このエラー:
「型 ‘GridView’ のコントロール ‘MainContent_gvRecent’ は、runat=server を含む form タグの内側に置かなければ成りません。」
は、ASP.NET Web Forms の基本ルールに違反していることを示しています。

✅ 原因
ASP.NET のサーバーコントロール(例:GridViewTextBox, Label など)は、必ず <form runat="server"> タグ内に配置する必要があります。
このエラーは以下のような状態で発生します:
❌ 誤った例(<form> の外)

<asp:GridView ID="gvRecent" runat="server" /> <!-- ✗ 外に出ている -->

✅ 解決方法
✅ 1. マスタページで <form runat="server"> があるか確認

<!DOCTYPE html> <html> <head>...</head> <body> <form id="form1" runat="server"> <asp:ContentPlaceHolder ID="MainContent" runat="server" /> </form> </body> </html>

→ GridView を含むコントロールがこの
の内側である必要があります。

✅ 2. Default.aspx に <asp:Content><form> の中にあるか確認

<asp:Content ContentPlaceHolderID="MainContent" runat="server"> <!-- OK: この中の GridView は form 内 --> <asp:GridView ID="gvRecent" runat="server" ... /> </asp:Content>

✅ 3. GridView 単体でテストする場合(フォームを自分で書く場合)

<form id="form1" runat="server"> <asp:GridView ID="gvRecent" runat="server" /> </form>

✅ 補足:このエラーはよくある初歩的ミスです
エラー箇所
よくある原因
<form> がない
マスタページや .aspx 側の不足
runat="server" がない
<form><GridView> に不足
<asp:GridView> 直書き
HTMLとして誤って外に書かれている

エラーを貼り付けるだけなので、簡単ですから是非利用してください。

全体工程図

ウォーターフォール型ですが、システム作業を進める上で以下の流れにて作業を進めます。

各工程にてどの様な資料を作成するかわからないことが多いですので、これからシステムに関わる人向けに詳細を説明していきます。

まずは、要求定義からです。

まずは、言語の選択です。ASP.NETで使用する言語は、どちらがいいかな。

自前のWEB画面を作りたい。。その様な要望が多く聞かれますので、これから構築方法を教えます。

まずは開発言語です。VB.NETまたは、C#で開発したい? 以下にサポート体制も含めて回答しますね。

開発分野VB.NET サポート
.NET Framework 4.8.x デスクトップ・Webアプリ✅ 可能
.NET Core / .NET 6+ の ASP.NET Core Webアプリ❌ サポート外
Windowsデスクトップ(WinForms、WPF、UWP)✅ 可能
タイプVB.NET対応備考
ASP.NET Web Forms✅ 対応Visual Studio 2022 でも作成可能(.NET Framework 4.x)
ASP.NET MVC(旧型)✅ 対応ただし、C#主流。VBも技術的には使用可
ASP.NET Web API✅ 対応同上、VB.NETでの利用も可能だが主にC#中心

以上のことからこれから始めるのあれば、.NET Coreのサポートもあるので、C#がいいかなと。私もVB.NETの方が詳しいのですが、今後のサポート等を考えるとC#がいいと思いますよ。