У меня есть простой модальный, состоящий из стандартных проверенных полей ASP.NET, которые заботятся о том, чтобы конечный пользователь не выдавал необходимые поля при отправке формы.Хранить загрузочный модальный открытый, от кода позади
Все это работает, отлично. Тем не менее, я делаю еще одно validatio поля username, которое использует идентификатор ASP.NET для проверки правильности имени пользователя. Когда имя пользователя недопустимо, я использую тот же самый механизм проверки ошибок, что и ранее, однако, как только ASP.NET завершил обработку метода, модальная функция автоматически, закрыта, и пользователь не увидит сообщение до тех пор, пока не запустится модальный режим.
Как я могу оставить модальный диалог закрытым, пока я не с удовольствием сделаю это?
код ниже как модальный и код позади:
<div class="modal fade" id="modalLostPassword" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title">Password recovery</h4>
</div>
<div class="modal-body row-fluid">
<div class="panel-heading panel-default">
<div class="alert alert-info alert-white rounded">
<div class="icon"><i class="fa fa-info-circle"></i>
</div>
<p>Please complete the below fields, and click submit. We will email you a temporary password.</p>
</div>
<%-- <div class="bs-callout bs-callout-info">
<div id="completeTxtWarning" class="alert alert-danger">Please</div>
</div>--%>
<asp:PlaceHolder runat="server" ID="ResetPasswordErrorMessage" Visible="false">
<p class="text-danger">
<asp:Literal runat="server" ID="ResetPasswordFailureText" />
</p>
</asp:PlaceHolder>
</div>
<div id="pnlLostPassword" class="container-fluid panel-danger">
<div>
<div class="form-group">
<div class="col-sm-12">
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-user"></i></span>
<asp:TextBox runat="server" ID="confirmUserName" CssClass="form-control" placeholder="Username.." />
</div>
<asp:RequiredFieldValidator runat="server" ID="RequiredFieldValidator1" ValidationGroup="ResetPasswordValidationGroup" ControlToValidate="confirmUserName" CssClass="text-danger" ErrorMessage="The user name field is required." />
</div>
</div>
<div class="form-group">
<div class="col-sm-12">
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-envelope"></i></span>
<asp:TextBox runat="server" ID="confirmEmail" TextMode="Email" CssClass="form-control" placeholder="Email.." />
</div>
<asp:RequiredFieldValidator runat="server" ID="confirmEmailValidator" ValidationGroup="ResetPasswordValidationGroup" ControlToValidate="confirmEmail" CssClass="text-danger" ErrorMessage="The email field is required." />
</div>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<asp:Button ID="btnSendNewPassword" ClientIDMode="Static" CssClass="btn btn-primary" Text="Reset" OnClick="SendNewPassword" runat="server" ValidationGroup="ResetPasswordValidationGroup"></asp:Button>
</div>
</div>
</div>
</div>
C#
protected void SendNewPassword(object sender, EventArgs e)
{
if (IsValid)
{
var userName = confirmUserName.Text;
var emailAddress = confirmEmail.Text;
// Generate random password.
string newPassword = Membership.GeneratePassword(12, 1);
// create new manager
var manager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext()));
// find the userName supplied.
var user = manager.FindByName(userName);
if (user != null)
{
}
else
{
// cannot find a user for the
ResetPasswordFailureText.Text = "Unknown username";
ResetPasswordErrorMessage.Visible = true;
}
}
else
{
ResetPasswordFailureText.Text = "Invalid username, or email address.";
ResetPasswordErrorMessage.Visible = true;
}
}
Можете ли вы пояснить, как это происходит с сервером? Вы отправляете запросы AJAX на сервер, чтобы проверить имя пользователя, или вы отправляете форму и перезагружаете всю страницу? Если первый, можете ли вы разместить свой javascript? –
Привет, Майкл, все это отправляется стандартным механизмом сообщений asp.net, и я считаю, что он закрывается. Мне просто нужен способ держать его открытым. Я могу использовать ajax, вызывая в WebMethod, но тогда мне придется создавать свои собственные валидаторы – CSharpNewBee