2012-03-21 17 views
9

Hola, estoy tratando de asignar una ID a una entrada HTML5 para que pueda acceder a su valor desde el código subyacente en el formulario web. Sin embargo, con el este código:La entrada de correo electrónico HTML5 no puede asignar ID y RUNAT = "Servidor" ASP.NET 4

<input type="email" required autofocus placeholder="Email Address" class="txt-input txt-input-username" ID="myTextBox" runat="server" /> 

Visual Studio 2010 me dice que no puede resolver el símbolo de ID = "myTextBox".

¿Alguna idea sobre cómo puedo solucionar esto porque he estado buscando una respuesta durante casi un día? gracias

Respuesta

5

ASP.Net 4.0 HtmlGenericControl no soporta el atributo "Tipo" como se define en el código, el error explica que, analizador de mensajes de error: 'correo electrónico' no es un tipo válido para una etiqueta de entrada., este es posiblemente un error "bien conocido" o fácilmente descubierto en el marco ASP.Net.

hay varias soluciones que se describen aquí:
http://msdn.microsoft.com/en-us/magazine/hh547102.aspxre
Actualizar el marco y utilizan el control TextBox Asp.Net Scott Hunter - HTML 5 Updates for .NET 4
Utilice un 3rd party ASP.Net Html5 UI control como la que está disponible desde CodePlex.

se hace una pregunta similar y respondió en los siguientes SO mensajes:
How can I use HTML5 email input type with server-side .NET - Este es el mismo problema que para la HtmlGenericControl sin embargo, no se aborda en la actualización
input types on server side controls


Mi preferencia personal fue moverse al ASP.Net MVC 3, es una curva de aprendizaje bastante empinada y un gran cambio respecto del estilo de "Web Forms" del desarrollo web ASP.Net, pero pronto se olvida una vez que te acostumbras a la sántica y el bacalao estilos de ing.

15

Usa este código para utilizar HTML5 tipo de entrada:

  1. Uso esto en .aspx archivo:

    <input type="text" required autofocus placeholder="Email Address" 
        class="txt-input txt-input-username" ID="myTextBox" runat="server"/> 
    
  2. Uso esto en .cs archivo:

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

buena opción para aquellos de nosotros en una versión más antigua del marco. –

2

Al lado de lo En las respuestas anteriores se puede usar el marco de trabajo de Microsoft.net 4.5 o superior, que no es un tipo válido de entrada para el "correo electrónico".

Para cambiar el marco del sitio web, tome las propiedades del sitio web haciendo clic con el botón derecho en el proyecto en el explorador de soluciones y haciendo clic en Propiedades. En la ventana de propiedades, seleccione la compilación en el menú de la izquierda y luego seleccione el marco 4.5 o superior.

enter image description here

+0

El diseñador de la página web de Visual Studion muestra un error - correo electrónico 'no es un tipo válido para una etiqueta de entrada - mientras se procesa un control . – machj

Cuestiones relacionadas