Ввод электронной почты HTML5 не может назначить идентификатор и RUNAT = "Сервер" ASP.NET 4 - PullRequest
11 голосов
/ 21 марта 2012

Привет! Я пытаюсь назначить идентификатор для ввода HTML5, чтобы я мог получить доступ к его значению из кода в веб-форме.Однако с этим кодом:

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

Visual Studio 2010 говорит мне, что не может разрешить символ ID = "myTextBox".

Любые идеи о том, как я могу это исправить, потому что у меня естьискал ответ почти сутки?спасибо

Ответы [ 4 ]

19 голосов
/ 19 марта 2014

Используйте этот код для использования типа ввода 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";
    
8 голосов
/ 21 марта 2012

ASP.Net 4.0 HtmlGenericControl не поддерживает атрибут «Тип», как определено в вашем коде, ошибка объясняет, что Сообщение об ошибке синтаксического анализатора: «электронная почта» не является допустимым типом для входного тега. , это, вероятно, «хорошо известная» или легко обнаруживаемая ошибка в инфраструктуре ASP.Net.

Есть несколько решений, которые изложены здесь:
http://msdn.microsoft.com/en-us/magazine/hh547102.aspxre
Обновите структуру и используйте элемент управления Asp.Net TextBox Скотт Хантер - Обновления HTML 5 для .NET 4
Используйте сторонний элемент управления ASP.Net Html5 UI , например, доступный в Codeplex.

Аналогичный вопрос задают и отвечают на следующие сообщения SO:
Как использовать тип ввода электронной почты HTML5 с серверной стороной .NET - Это та же проблема, что и для HtmlGenericControl, однако она не устранена в обновлении
типы ввода на серверных элементах управления


Мое личное предпочтение закончилось тем, что я перешел на ASP.Net MVC 3 , это довольно крутая кривая обучения и большое изменение по сравнению со стилем веб-разработки ASP.Net в "веб-формах", однако вскоре он будет забыт, как только вы привыкнуть к символике и стилям кодирования.

3 голосов
/ 19 декабря 2014

Помимо решений, приведенных в ответах выше, вы можете использовать платформу Microsoft.net 4.5 или выше, которая не подает жалобу на «электронную почту», не является допустимым типом для ввода.

Чтобы изменить структуру сайтавзять свойства веб-сайта, щелкнув правой кнопкой мыши проект в обозревателе решений и нажав свойства.В окне свойств выберите сборку из меню слева, а затем выберите каркас 4.5 или выше.

enter image description here

0 голосов
/ 31 мая 2019

Если вы используете vb.net:

На .aspx странице

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

Избегайте type = "email / date / mob"во входном теге это может привести к ошибке разбора

На странице .vb, в PageLoad ()

   myTextBox.Attributes.Add("type","email")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...