ASP.NET4.0以降で、formのname属性が出力されなくなる問題

https://docs.microsoft.com/ja-jp/aspnet/whitepapers/aspnet4/overview
web.configでレンダリングの互換性設定を3.5に設定することで解決する。

<system.web><pages controlRenderingCompatibilityVersion="3.5">



xhtmlConformanceを使う方法もあるが、移行元がASP.NET2.0以降の場合はそれでは駄目。
以下のようにしてしまうと、ASP.NET 1.1相当のレンダリングになるためname属性の区切り文字に使う記号がダラーからコロンに変わってしまう。

<xhtmlConformance mode="Legacy"/>

http://dechnostick.hatenablog.com/entry/2014/08/15/233125



まあ本当は問題というか、仕様に準拠する振る舞いが既定に変わったという話なんだが。
http://aesoftlab.blogspot.com/2015/09/aspnet.html

既定のレンダリングには、XHTML 1.1 仕様に 準拠していないマークアップも含まれています。
たとえば、XHTML 1.1 標準では、HTML form 要素の name 属性の使用は禁止されています。