zukucode
主にWEB関連の情報を技術メモとして発信しています。

ASP.NET aspxを修正してもdesignerに反映されないときの対処法

ASP.NETaspxファイルにコントロールを追加しても、コードビハインドでそのコントロールが参照できずにエラーになってしまう場合があります。

WebForm1.aspx
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
WebForm1.aspx.vb
TextBox1.Text = "foo" 'エラーになる

原因はよくわかりませんが、WebForm1.aspx.designer.vbに反映されていないため、参照できずにエラーになってしまいます。

本来はWebForm1.aspx.designer.vbファイルはWebForm1.aspxに応じて自動生成されるのですが、なんらかの原因によって自動生成ができていないことが考えられます。

対処法

以下のようにデザイナファイルの先頭に定義されている箇所を変更すると反映されるようになることが多いです。

変更といっても、修正前と値を変更する必要はなく、閉じタグ(%>)を消してから元に戻すといった操作を行うだけで問題ありません。

WebForm1.aspx
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="Form1.aspx.vb" Inherits="TEST.Form1" %>
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="Form1.aspx.vb" Inherits="TEST.Form1"

上記の方法でもうまく行かない場合はVisual Studioを一度閉じてから開きなおすとうまく行くこともあります。


関連記事