Невозможно получить доступ к переменным формы в ASP.NET при отправке формы

#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