Как опубликовать и проверить "именованный" ввод в C #? - PullRequest
0 голосов
/ 30 марта 2011

Мне нужно опубликовать форму на сторонний URL в C #. Поля ввода должны быть названы так, чтобы соответствовать ожиданиям третьей стороны (в данном случае «Адрес электронной почты» и т. Д.). Если я использую стандартный тег input, у меня не будет отличного способа проверить элемент управления. Если я использую «asp: TextBox», как в этом примере, он переименует мое поле и испортит мой пост. ПОМОГИТЕ!

     <asp:TextBox id="CustomerEmailInput" runat="server"
          name="Email Address" 
          CssClass="tb5a" >       
     </asp:TextBox>
     <asp:RequiredFieldValidator ID="customerEmailRequired" runat="server" 
          ControlToValidate="CustomerEmailInput"
          display="Dynamic"
          ErrorMessage="*">
     </asp:RequiredFieldValidator>
     <asp:Button runat="server" 
          PostBackUrl="http://ThirdPartyUrl.com"
          Text="Submit" />

Итак, вышеизложенное приводит к следующему. Мне нужно, чтобы имя было «Адрес электронной почты», или мне нужен хороший способ проверки поля ввода (этот пример упрощен, есть больше полей и больше проверок регулярных выражений).

<div>
     <input type="text" name="ctl00$ContentPlaceHolder1$CustomerEmailInput" class="tb5a" id="ctl00_ContentPlaceHolder1_CustomerEmailInput">
     <span style="color: Red; display: none;" id="ctl00_ContentPlaceHolder1_customerEmailRequired">*</span>
     <input type="submit" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;ctl00$ContentPlaceHolder1$ctl00&quot;, &quot;&quot;, true, &quot;&quot;, &quot;http://thirdpartyurl.com&quot;, false, false))" value="Submit" name="ctl00$ContentPlaceHolder1$ctl00">   
</div>

Ответы [ 2 ]

2 голосов
/ 30 марта 2011

Сначала попробуйте установить ClientIDMode в статическое состояние. Я знаю, что это будет держать статический идентификатор, но не уверен насчет атрибута имени.

Вы также можете попытаться сохранить введенные данные без использования asp: TextBox, но в любом случае добавьте в него runat = "server" и посмотрите, сохранит ли оно ваше имя. Как то так:

<input type="text" name="EmailAddress" id="EmailAddress" runat="server" />

Кстати, почему в имени переменной есть пробелы? Не вычисляется.

1 голос
/ 30 марта 2011

Если вы отправляете прямо из своей формы третьему лицу без повторной отправки на свой сервер, то самым простым подходом в традиционных веб-формах asp.net было бы создать свою форму, а затем настроить ее действие на сторонний URL-адрес. явно и использовать простой старый базовый HTML с тегами для представления содержимого. Затем вы вводите JavaScript для проверки полей на стороне клиента.

Если вы отправляете сообщение обратно на сервер, а затем отправляете его третьему лицу, это не проблема, потому что тогда вы можете отформатировать сообщение так, как вам нравится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...