Проблема решена ...
У меня есть простая веб-форма, в которой мне нужно сохранить адрес электронной почты и дать пользователю сообщение об успехе или неудаче в модальном окне, и я хочу выполнить проверку и обработать из кода, а затем показать модальное окно.
Прямо сейчас, когда я нажимаю кнопку подписки, оно быстро показывает модальное окно без выполнения кода программной части / серверной части. Пожалуйста, найдите образец кода ниже
<asp:ModalPopupExtender ID="ModalPopupExtender1" BackgroundCssClass="modalBackground" runat="server" PopupControlID="pnlMSG" CancelControlID="btnSubscribe"
TargetControlID="HiddenField1">
</asp:ModalPopupExtender>
Продолжить просмотр
<asp:Label ID="lblSubscriptionText" CssClass="lblfooterSubscribe"
runat="server" Text="Enter your email to subscribe to our Newsletter"
meta:resourcekey="lblSubscriptionTextResource1"></asp:Label>
<asp:TextBox ID="txtSubscribeEmail" runat="server" CssClass="txtSubEmail"
meta:resourcekey="txtSubscribeEmailResource1"></asp:TextBox>
<asp:Button ID="btnSubscribe" runat="server" Text="Subscribe"
CssClass="SubEmailBtn" ValidationGroup="SubEmail"
onclick="btnSubscribe_Click" meta:resourcekey="btnSubscribeResource1" />
<asp:HiddenField ID="HiddenField1" runat="server" />
protected void btnSubscribe_Click(object sender, EventArgs e)
{
//Regex reg = new Regex(@"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*");
string email = txtSubscribeEmail.Text;
email = Helper.SafeSqlLiteral(email, 2);
string strSql = "INSERT INTO Subscribe (email, subscribeDate,Language)";
strSql += "VALUES ('" + email + "','" + DateTime.Now.ToString("yyyy/MM/dd") + "','" + Session["lang"].ToString() + "')";
int result = 0;
result = DataProvider.intConnect_Select(strSql);
lblSubEmailMSG.Visible = true;
btnSubscribe.Enabled = false;
//Response.Redirect(HttpContext.Current.Request.Url.AbsoluteUri);
// System.Threading.Thread.Sleep(2000);
this.ModalPopupExtender1.Show();
}
Я попытался удалить свойство TargetControlID = "btnSubscribe" из modalPopupExtender, но он выдает ошибку, говоря, что TargetControlID не может быть нулевым или пустым, даже при удалении TargetControlID возникает ошибка.
Если я использую скрытое поле в качестве идентификатора TargetControl, тогда он выполняет код, но он полностью отправляет сообщение и не отображает модальное окно
Подскажите, пожалуйста, как передать эту функциональность.
Что я сделал? Я решил проблему, указав TargeControl как скрытое поле, и я также использовал response.redirect, который по ошибке я оставил без комментариев. Теперь он отлично работает