#c# #.net #asp.net
#c# #.net #asp.net
Вопрос:
Я не могу получить доступ к переменной формы запроса. Ниже приведен фрагмент моего aspx-кода.
<form id="mainmasterform" runat="server">
<table align="center">
<tr>
<td><label for="ownfname">First Name</label></td>
<td><asp:TextBox id="ownfname" runat="server" TextMode="SingleLine"/></td>
</tr>
<tr>
<td><label for="ownlname">Last Name</label></td>
<td><asp:TextBox id="ownlname" runat="server" TextMode="SingleLine"/></td>
</tr>
<tr>
<td colspan="2">
<asp:Button ID="submitowner" runat="server" Text="Submit" onclick="modifyDetails" />
</td>
</tr>
</form>
Теперь при нажатии кнопки вызывается серверный метод «modifyDetails», который пытается получить доступ к переменным формы с помощью запроса.Объект формы.
protected void modifyDetails(object sender, EventArgs e) {
string fname = Request.Form["ownfname"];
string lname = Request.Form["ownlname"];
}
Это не работает, строки fname и lname всегда равны нулю.
Пожалуйста, помогите, поскольку я не могу понять, что здесь не так.
Ответ №1:
Почему бы просто не сделать следующее?
protected void modifyDetails(object sender, EventArgs e) {
string fname = ownfname.Text;
string lname = ownlname.Text;
}
Вот как ASP.NET разработан для работы.
Комментарии:
1. После применения вашего данного кода он начал работать. Но не удается понять, когда использовать Request. Форма [«Что-то»] и «Что-то. Текст»? Кто-нибудь может объяснить
2. При обычных обстоятельствах вы бы никогда не использовали
Request.Form["Something"]
в ASP.NET . ASP.NET предназначен для ссылки на значения post, используя синтаксис, который я опубликовал выше.3. используя строку fname = ownfname. Текст дает мне значения, но он дает мне старые значения. Например, когда веб-страница отображается, текст в «ownfname» — «Robert», а затем вы изменяете его на «David», затем нажимаете на кнопку отправки. После отправки доступ к «ownfname. Свойство Text» по-прежнему выдает «Роберт», а не «Дэвид». Я создаю форму изменения данных. Я что-то здесь упускаю?
4. Это совершенно отдельная проблема, которая никогда со мной не случалась. Должно быть, с вашей страницей что-то странное. Я предлагаю вам начать новый вопрос. Обязательно включите небольшой код, чтобы люди могли видеть, что вы делаете.
Ответ №2:
Либо не используйте <asp:
элементы управления (вместо этого используйте обычные элементы управления HTML), либо установите для их ClientIDMode
свойства значение static. Документация здесь
Ответ №3:
попробуйте это
string fname = ownfname.Text
string lname = ownlname.Text