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

时间:2012-03-21 08:40:23

标签: 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" />

Visual Studio 2010告诉我它无法解析符号ID =“myTextBox”。

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

4 个答案:

答案 0 :(得分:19)

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

  1. .aspx文件中使用:

    <input type="text" required autofocus placeholder="Email Address"
        class="txt-input txt-input-username" ID="myTextBox" runat="server"/>
    
  2. .cs文件中使用:

     myTextBox.Attributes["type"] = "email";
    

答案 1 :(得分:7)

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

这里列出了几种解决方案:
http://msdn.microsoft.com/en-us/magazine/hh547102.aspxre
更新框架并使用Asp.Net TextBox控件Scott Hunter - HTML 5 Updates for .NET 4
使用3rd party ASP.Net Html5 UI control,例如Codeplex提供的How can I use HTML5 email input type with server-side .NET

提出了类似的问题,并回答了以下SO帖子:
input types on server side controls - 这与HtmlGenericControl的问题相同,但更新中未解决此问题
ASP.Net MVC 3


我个人的偏好最终转移到了{{3}},这是一个非常陡峭的学习曲线和ASP.Net网络开发的“Web窗体”风格的重大变化,但是一旦你习惯了语义,它很快就会被遗忘编码风格。

答案 2 :(得分:3)

除了上述答案中给出的解决方案,您可以使用Microsoft.net框架4.5或更高版本,不会对“电子邮件”的投诉不是输入的有效类型。

通过右键单击解决方案资源管理器中的项目并单击属性来更改网站的框架,获取网站的属性。在属性窗口中,从左侧菜单中选择构建,然后选择框架4.5或更高版本。

enter image description here

答案 3 :(得分:0)

  

如果您使用的是vb.net:

.aspx页中

   <input id="myTextBox" runat="server"/>

避免在输入标签中输入type =“ email / date / mob”,它可能会产生解析错误

.vb页的 PageLoad()

   myTextBox.Attributes.Add("type","email")