ASP.NET 和 C#:与 Response.Redirect 结合使用时不显示 MessageBox
ASP.NET and C#: MessageBox not shown when used in combination with Response.Redirect
在我的 ASP.NET 网络表单中,我需要通知用户他们的反馈已提交。我打算在我的代码隐藏中这样做:
protected void lblButton_Click(object sender, EventArgs e)
{
Response.Redirect(Request.RawUrl); //Refresh page
Messagebox("Feedback submitted. Click OK to go back.");
return;
}
public void Messagebox(string xMessage)
{
Response.Write("<script>alert('" + xMessage + "')</script>");
}
但是,当我 运行 这样做时,我的页面总是刷新而没有显示消息框。
如果我将 Response.Direct 与 Messagebox 交换,则没有任何变化。
我做错了什么?
我认为您必须在代码中使用 Response.Redirect(URL,false)..
protected void lblButton_Click(object sender, EventArgs e)
{
Response.Redirect(Request.RawUrl,false); //Refresh page
Messagebox("Feedback submitted. Click OK to go back.");
return;
}
Response.Redirect(URL,false):
客户端被重定向到一个新页面,服务器上的当前页面将继续处理。
Response.Redirect(URL,true):
客户端被重定向到一个新页面,但是当前页面的处理被中止。
再次未显示消息然后尝试使用.....Javascript 警报...
protected void lblButton_Click(object sender, EventArgs e)
{
Response.Redirect(Request.RawUrl,false); //Refresh page
ScriptManager.RegisterClientScriptBlock((Page)(HttpContext.Current.Handler), typeof(Page), "alert", "javascript:alert('Feedback submitted. Click OK to go back.');", true);
return;
}
警报是特定于页面的,因此即使显示警报对话框,它也会在客户端重定向后立即消失。
您需要的是从 lblButton_Click 返回的确认页面,其中有一个 'Ok' 按钮、一个超链接或一个定时 js 函数,可以将地址更改为您想要的页面重定向到。
根据我得到的其中一个建议,我最终使用了一个带有从 aspx 文件调用的“确定”按钮的确认页面:
<asp:Button runat="server" ID="btnSave" Click="btnSave_Click" Text="Save"
OnClientClick="return confirm('Are you sure you want to do this thing?');" />
在我的 ASP.NET 网络表单中,我需要通知用户他们的反馈已提交。我打算在我的代码隐藏中这样做:
protected void lblButton_Click(object sender, EventArgs e)
{
Response.Redirect(Request.RawUrl); //Refresh page
Messagebox("Feedback submitted. Click OK to go back.");
return;
}
public void Messagebox(string xMessage)
{
Response.Write("<script>alert('" + xMessage + "')</script>");
}
但是,当我 运行 这样做时,我的页面总是刷新而没有显示消息框。
如果我将 Response.Direct 与 Messagebox 交换,则没有任何变化。
我做错了什么?
我认为您必须在代码中使用 Response.Redirect(URL,false)..
protected void lblButton_Click(object sender, EventArgs e)
{
Response.Redirect(Request.RawUrl,false); //Refresh page
Messagebox("Feedback submitted. Click OK to go back.");
return;
}
Response.Redirect(URL,false):
客户端被重定向到一个新页面,服务器上的当前页面将继续处理。
Response.Redirect(URL,true):
客户端被重定向到一个新页面,但是当前页面的处理被中止。
再次未显示消息然后尝试使用.....Javascript 警报...
protected void lblButton_Click(object sender, EventArgs e)
{
Response.Redirect(Request.RawUrl,false); //Refresh page
ScriptManager.RegisterClientScriptBlock((Page)(HttpContext.Current.Handler), typeof(Page), "alert", "javascript:alert('Feedback submitted. Click OK to go back.');", true);
return;
}
警报是特定于页面的,因此即使显示警报对话框,它也会在客户端重定向后立即消失。
您需要的是从 lblButton_Click 返回的确认页面,其中有一个 'Ok' 按钮、一个超链接或一个定时 js 函数,可以将地址更改为您想要的页面重定向到。
根据我得到的其中一个建议,我最终使用了一个带有从 aspx 文件调用的“确定”按钮的确认页面:
<asp:Button runat="server" ID="btnSave" Click="btnSave_Click" Text="Save"
OnClientClick="return confirm('Are you sure you want to do this thing?');" />