HTMLでは、バージョンごとに使用できる要素や属性、
要素の配置の仕方について厳密に定義されています。
これはDTD(Document Type Definition 文書型定義)をDOCTYPE宣言で
指定することで、そのバージョンの規則に合わせて表示します。
そこで、以前から開発を行っていたシステムをVisual Studioのバージョンを
変えてカスタマイズをするといった場合、注意が必要です。
新規でaspxファイルを作成する場合に、あらかじめ記述されている
HTMLのバージョン宣言がVisual Studioのバージョンによって異なります。
●Visual Studio .NET 2003
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
●Visual Studio 2005
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
たいていは以前のシステムのファイルを持ってきて、
新バージョンのプロジェクトに追加し、改修すると思いますが、
新規で作成する必要がある機能は、新規でファイルを追加して作ると思います。
その場合に、画面によって違うHTMLのバージョンが宣言されていることになります。
私が上記のような開発を行っていて、以下のようなことがありました。
隠しコントロールをTextBoxで配置する際に、widthとheightを0pxに設定しますが、
Visual Studio 2005で作成したファイルで行うと、TextBoxの枠線が見えてしまいます。
これを回避するには、styleでborder-widthを0px指定する必要がありました。
<asp:TextBox id="txtHidden" runat="server" tabindex="-1" width="0px" height="0px">
※このように表示される →
<asp:TextBox id="txtHidden" runat="server" tabindex="-1" width="0px" height="0px" style="border-width:0px;">
※消える
他にJavaScript使用部分でもエラーが起こることがありました。
開発環境が変わる場合は、このような対策も考える必要がありますね。