HTML5电子邮件输入无法分配ID和RUNAT ="Server"ASP.NET 4

adi*_*bon 11 c# asp.net html5 input

您好我正在尝试为HTML5输入分配一个ID,以便我可以从Web表单中的代码访问其值.但是使用此代码:

 <input type="email" required autofocus placeholder="Email Address" class="txt-input txt-input-username" ID="myTextBox" runat="server" />
Run Code Online (Sandbox Code Playgroud)

Visual Studio 2010告诉我它无法解析符号ID ="myTextBox".

关于如何解决这个问题的任何想法,因为我一直在寻找答案近一天?谢谢

小智 19

使用此代码使用HTML5输入类型:

  1. .aspx文件中使用此:

    <input type="text" required autofocus placeholder="Email Address"
        class="txt-input txt-input-username" ID="myTextBox" runat="server"/>
    
    Run Code Online (Sandbox Code Playgroud)
  2. .cs文件中使用此:

     myTextBox.Attributes["type"] = "email";
    
    Run Code Online (Sandbox Code Playgroud)

  • 对于我们这些框架的旧版本的人来说,这是一个很好的选择. (2认同)

Llo*_*oyd 8

ASP.Net 4.0 HtmlGenericControl不支持代码中定义的"Type"属性,错误解释了,Parser错误消息:'email'不是输入标记的有效类型.,这可以说是ASP.Net框架中一个"众所周知"或容易发现的错误.

有迹象表明,罗列如下几种解决方案:
http://msdn.microsoft.com/en-us/magazine/hh547102.aspxre
更新的框架和使用Asp.Net TextBox控件斯科特·亨特- HTML 5次的更新.NET 4
使用一个第三方ASP.Net Html5的UI控件,例如可从Codeplex上的人.

提出了类似的问题,并回答了以下SO帖子:
如何在服务器端.NET中使用HTML5电子邮件输入类型 - 这与HtmlGenericControl的问题相同,但是在服务器上的更新输入类型中没有解决
侧控制


我个人的偏好最终转移到ASP.Net MVC 3,它相当陡峭的学习曲线和ASP.Net网站开发的"Web窗体"风格的重大变化,但是一旦你习惯了语义,它很快就会被遗忘编码风格.