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



asp.net core form (4)

Если вы обращаетесь к простой форме 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" ), при этом сервер управляет идентификатором и именем.

https://ffff65535.com

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

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


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

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


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

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


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

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

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





forms