ASP.NET3.5からASP.NET4へのアップグレードでの注意点
Visual Studioで3.5のプロジェクトを4にアップグレードすれば、自動で必要な設定をしてくれるが、この変換はサーバー側のアップグレードしか考えていない。クライアントは古いInternetExplorerを使い続けるならいいが、Edgeなど新しいブラウザに対応する必要があるなら、新しいASP.NETプロジェクトを作ってコードを移植したほうが無難だ。
controlRenderingCompatibilityVersion
Visual Studioでアップグレードすると、Web.configにcontrolRenderingCompatibilityVersion="3.5"が自動で入る。これが入ることで、ASP.NET4でも3.5と同じHTMLを出力するので、クライアントが古いままならこれで問題ないが、新しいブラウザではサポートしていない属性を使ったりするので、新しいブラウザだと逆効果だ。
気が付きにくいのが、RequiredFieldValidatorやCustomValidator。 controlRenderingCompatibilityVersion="3.5"になっていると、IE11やEdge用の初期化コードを出力しないため、機能しなくなる。 なお、
<xhtmlConformance mode="Legacy"/>もアップグレードで自動挿入されるが、これがcontrolRenderingCompatibilityVersionと同じ副作用を出す場合がある。
ClientIDMode
ASPコントロールに自動生成されるIDの付け方がASP.NET3.5と4で変わっている。
JavaScriptで、ID指定でコントロールを参照・制御している場合は、この値を"AutoID"にすれば、IDの付け方が3.5と同じなるのでJavaScirptを書き換えたくないのであれば、この設定をするのが良い。
なお、Visual Studioでアップグレードした場合は、Web.configに
ClientIDMode="AutoID"が自動で入る。
AJAX Control Toolkit
Microsoftから提供されなくなったが、メンテは続けられていている。
ただし、ASP.NET4からはScriptManagerが変わっているので、設定の仕方が大きく変わっている。インストレーションガイドを参考にするとよい。
コメント
コメントを投稿