Page.ClientScript.RegisterStartupScript(this.GetType(), "key",
@"<script type='text/javascript'>
alert('注册成功');
window.location.href = '/Default.aspx';
</script>"
);
发个静态方法。
/// <summary>
/// 弹出消息框并且转向到新的URL
/// </summary>
/// <param name="page">Page类</param>
/// <param name="message">消息内容</param>
/// <param name="toURL">连接地址</param>
public static void AlertAndRedirect(System.Web.UI.Page page, string message, string toURL)
{
#region
string strKey;
int i;
string js = "<script language=javascript>alert('{0}');window.location.replace('{1}')</script>";
//注册脚本块的Key
strKey = System.DateTime.Now.ToString();
//循环,直至找到某个没被注册过的Key
for (i = 0; i < 10000; i++)
if (!page.ClientScript.IsClientScriptBlockRegistered(strKey + i.ToString()))
break;
page.ClientScript.RegisterClientScriptBlock(page.GetType(), Guid.NewGuid().ToString(), string.Format(js, message, toURL));
#endregion
}
最简单的就是用js控制提示、跳转。
你注册js脚本来提示,那么为什么不用js来跳转呢?
“alert〔‘OK’〕;window.lotation.hrdf='路径';”
一楼的"/"是根目录的意思。具体路径看自己的情况
你遇到的这种情况,我也曾经遇到过,但是还郁闷了一段时间,但是如果了解的asp.net运行机制,那就很好解释啦,你的执行代码虽然是先在页面注册了JavaScript脚本然后再跳转,实际上,前端的页面确实也注册了JavaScript脚本,但是asp.net的运行周期中,后台代码先于前台html标签的运行,所以在这个页面注册的了JavaScript脚本,但是马上就跳到另一个页面,另一个页面没有这段JavaScript,自然就不会弹出窗口了。
1 function prompt()
2 {
3 if(!confirm("添加成功!继续添加,点击“确定”,否则跳转到新闻管理页面"))
4 {
5 window.location.href="NewsManager.aspx";
6 }
7 else
8 {
9 return false;
10 }
11 }