こんにちは。
日本マイクロソフト、CSS デベロッパーツールズ AppPlat の伊東です。今日はASP.NET 3.5 の障害について紹介させて頂きます。
概要
ASP.NET 3.5 までの TextBox コントロールを MultiLine で使用した場合、Text プロパティ冒頭の改行コードが、ポストバックによって取り除かれます。
詳細
以下のように、.aspx に Button コントロールと TextBox コントロールを配置します。
<form id="form1" runat="server">
<asp:Button ID="Button1" runat="server" Text="Button" />
<asp:TextBox ID="TextBox1" runat="server" TextMode="MultiLine"></asp:TextBox>
</form>
以下のように、Page_Load イベント初回にて、TextBox コントロールの Text プロパティに、冒頭に複数の改行を含めた文字列をセットします。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
TextBox1.Text = "\n\nTest";
}
}
このページで Button をクリックしポストバックすると、ASP.NET 3.5 まででは冒頭の改行が一つ取り除かれます。何度もポストバックする事で最終的には全ての改行が取り除かれます。
原因
本動作は ASP.NET 3.5 までの障害として確認されました。この動作については、ASP.NET 4.0 以降では修正され、発生しません。
以上です。