使用TextMode Number回发后,TextBox会丢失值

Dov*_*opa 4 asp.net textbox updatepanel

有奇怪的问题.我有简单的页面TextBox:

<asp:ScriptManager runat="server" />
<asp:UpdatePanel runat="server">
    <ContentTemplate>
        <asp:TextBox ID="amountTextBox" runat="server" TextMode="Number" />
        <asp:Button runat="server" Text="Confirm" OnClick="confirmButton_Click" />
    </ContentTemplate>
</asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)

之后Button点击我试图让TextBox价值:

public partial class test : Page {
    protected void confirmButton_Click(object sender, EventArgs e) {
        var answer = amountTextBox.Text;
    }
}
Run Code Online (Sandbox Code Playgroud)

但它是空的.如果我删除UpdatePanel,我设法获得价值.如果我离开UpdatePanel并删除TextMode属性,我设法获得价值.但我为什么会有不TextBoxtTextMode设置为NumberUpdatePanel

Tim*_*ter 5

这是一个已知问题,.NET 4.5 RTM中提供了一个修复程序.

描述

HTML5具有输入标签的新类型,例如type ="number",这是使手机显示数字键盘而不是文本键盘所需的类型.在完成页面的完整回发时,它适用于所有浏览器.但是,如果我将这些放在网站上的更新面板中进行部分回发,那么没有新的HTML输入类型包含在那些了解这些新类型(Safari/WebKit和Opera)的浏览器的回发响应中.它在IE8和Firefox 4中可以正常工作,但可能只是因为它们没有实现这些新类型,而是将其理解为type ="text"字段.

以下是此问题和解决方法的另一个问题:UpdatePanel的输入类型不同于html5中的文本.