Не удается получить правильное значение из формы

#c# #html #asp.net #web

Вопрос:

Так что это странно, потому что раньше это работало, а теперь нет. У меня есть форма html-страницы:

 <div class="form-group">
    <label for="Email" class="col-sm-2 control-label">Email</label>
    <div class="col-sm-10">
        <div class="form-line">
            <input type="email" id="email" runat="server" 
                class="form-control" name="Email" placeholder="Email" required>
        </div>
    </div>
</div>
 

И код на обратной стороне кнопки нажмите, чтобы отредактировать электронную почту этого человека:

 userid = Convert.ToInt32(Session["ID"]);
UserClass user = sc.GetUser(userid);

Debug.Print("newemail from form "   " "   email.Value);

user.Email = email.Value;

if(sc.EditUser(userid, user))
{
    messageDiv.Visible = true;
    message.Value = "Successfully updated your email ";          
}
 

Но значение email.неверно.
При загрузке страницы у меня есть email.значение, равное исходному электронному письму пользователя, как только пользователь изменит его и нажмет «Изменить», я получу измененное email.значение. Но, по-видимому, это дает исходное значение email., а не то, что ввел пользователь. Раньше он работал нормально, но теперь я не знаю, почему он это делает. Пожалуйста, помогите.
Спасибо

Изменить: Я только что протестировал, оставив значение email.пустым при загрузке страницы. Тогда все работает нормально. Но почему это не сработает, если у меня есть email.значение, равное исходному электронному письму пользователя.

Комментарии:

1. Это всегда стоит попробовать, если вы что-то перемещали (я просто должен был это сделать). Прокомментируйте код кнопки, затем вернитесь в форму и дважды щелкните кнопку, чтобы создать новый обработчик событий. Затем скопируйте сохраненный (прокомментированный) код в новый обработчик.

2. @wazz Я попробую это сделать, у меня такая же проблема и на другой странице.

3. SMTP вы можете отправить по одному электронному письму с экземпляром класса. Вы должны создать новый экземпляр для каждого электронного письма, используя «новый SMTP().

4. Я не отправляю электронные письма, просто разрешаю пользователю изменять свою электронную почту. @jdweng

Ответ №1:

Так что я вел себя глупо. Мне просто нужно было:

 if(!IsPostBack){
 \then set all to original values like 
 email.value=user.email;
}