Я работаю над проектом eCommerce, который имеет панель администратора и торговые панели.ASP.net Change Password Validator
Я закончил программирование и теперь тестировал каждый отдельный файл aspx и cs вручную.
Проблема в том, что у меня есть функция смены пароля, связанная с сеансом и базой данных. Проблема в том, что у меня есть валидаторы в моем aspx-файле, но они не будут работать. Здесь мои коды;
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
<asp:Panel ID="Panel1" runat="server" DefaultButton="btnChange">
<div class="userForm">
<div class="formTitle">
Change Your Password
</div>
<div class="formContent">
<asp:TextBox ID="txtPassword" placeholder="Type your new password" runat="server" TextMode="Password"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ControlToValidate="txtPassword"
ErrorMessage="RequiredFieldValidator" ForeColor="Red" Display="Dynamic" ValidationGroup="signup">Enter a password</asp:RequiredFieldValidator>
<br />
<asp:TextBox ID="txtAgainPassword" placeholder="Repeat your new password" runat="server" TextMode="Password"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator9" runat="server" BorderColor="Red"
ControlToValidate="txtAgainPassword" Display="Dynamic" ErrorMessage="Enter password again."
ForeColor="Red" ValidationGroup="signup"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="CompareValidator1" runat="server" ControlToCompare="txtPassword"
ControlToValidate="txtAgainPassword" Display="Dynamic" ErrorMessage="Password don't match."
ForeColor="Red" ValidationGroup="signup"></asp:CompareValidator>
<br />
<asp:Button ID="btnChange" runat="server" Text="Submit" OnClick="btnChange_Click" />
<br />
<asp:Label ID="lblError" Visible="False" ForeColor="Green" runat="server"></asp:Label></div>
</div>
</asp:Panel>
</asp:Content>
и .cs часть ниже
protected void btnChange_Click(object sender, EventArgs e)
{
using (ZirveMarketDBEntities context = new ZirveMarketDBEntities())
{
// Atanan sessiona gore user bilgisini al - guvenlik icin onemli
int id = (int)Session["CustomerID"];
Customer cust = context.Customers.Where(i => i.CustomerID == id).FirstOrDefault();
cust.Password = txtPassword.Text;
context.SaveChanges();
}
lblError.Visible = true;
lblError.Text = "Password successfully updated";
}
Проблема в том, у меня есть 2 окна для нового пароля и введите новый пароль. Даже если они равны нулю, даже если они не совпадают, пароль все равно изменяется со значением первой части. Я не хочу запускать код на стороне сервера, если они не совпадают или не совпадают. Что я делаю не так? Помогает очень хорошо.
Ah , Как я мог пропустить это! Кажется, настало время сделать перерыв для меня :) Спасибо за ответ, я также рассмотрю вашу рекомендацию на каждой кнопке, которую я использую, спасибо! –
Спасибо за это. По какой-то причине при использовании заполнителей w/asp TextBox элементы управления, требуемый валидатор не будет работать в IE9 и 8. Добавление этого кода в btn отправить событие исправлено. –