Подтвердить что ты не робот

Как получить доступ к вводу формы html из кода asp.net

У меня есть базовая HTML-форма, которая вставлена ​​в тег div на стороне сервера, основываясь на том, сколько записей существует в базе данных. Эта форма HTML выходит просто отлично, и все выглядит хорошо. Но на моей странице действий я не могу получить доступ к входным элементам из кода. Я попытался использовать область "Запрос", но при этом не понял этого подхода. Любые другие предложения?

Все приведенные ниже предложения велики, и обычно это то, что я буду делать. Но эти формы строятся на лету после того, как страница компилируется, поэтому runat = 'server' ничего не сделал для меня. Он просто передал это на страницу html.

4b9b3361

Ответ 1

Если вы обращаетесь к простой форме HTML, она должна быть отправлена ​​на сервер через кнопку отправки (или через javascript-сообщение). Это обычно означает, что ваше определение формы будет выглядеть так (я уйду из памяти, убедитесь, что вы правильно проверяете элементы html):

<form method="POST" action="page.aspx">

<input id="customerName" name="customerName" type="Text" />
<input id="customerPhone" name="customerPhone" type="Text" />
<input value="Save" type="Submit" />

</form>

Вы должны иметь доступ к данным customerName и customerPhone следующим образом:

string n = String.Format("{0}", Request.Form["customerName"]);

Если у вас есть method="GET" в форме (не рекомендуется, это испортит ваше пространство URL), вам нужно будет получить доступ к данным формы следующим образом:

string n = String.Format("{0}", Request.QueryString["customerName"]);

Это, конечно, будет работать только в том случае, если форма была "Отправлена", "Представлена" или выполнена через "Отправить". (т.е. кто-то нажал кнопку "Сохранить", или это было сделано программно через javascript.)

Кроме того, имейте в виду, что доступ к этим элементам таким образом может быть выполнен только тогда, когда вы не используете серверные элементы управления (т.е. runat="server"), при этом сервер управляет идентификатором и именем.

Ответ 2

Я предполагаю, что вам нужно установить те элементы ввода runat = "server" .

Таким образом, вы не сможете получить доступ к элементу управления

<input type="text" name="email" id="myTextBox" />

Но вы сможете работать с

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

И прочитайте его, используя

string myStringFromTheInput = myTextBox.Value;

Ответ 3

Обычно это делается с помощью Request.Form["elementName"].

Например, если у вас есть <input type="text" name="email" />, вы можете использовать Request.Form["email"] для доступа к его значению.

Ответ 4

Простейшим способом IMO является включение идентификатора и тега сервера runat для всех ваших элементов.

<div id="MYDIV" runat="server" />

Так как это похоже на динамически вставленные элементы управления, вы можете оценить FindControl().

Ответ 5

Поскольку вы используете код asp.net, добавьте id к элементу и runat = server.

Затем вы можете ссылаться на объекты в коде.

Ответ 6

Изменить: подумал о чем-то другом.

Вы говорите, что динамически создаете форму - действительно ли вы имеете в виду форму <form> и его содержимое приводит к тому, что asp.net берет проблему с несколькими формами на странице, и она уже создает для вас одну uberform.