由于响应,Javascript被忽略.重定向()

本文关键字:重定向 Javascript 响应 于响应 | 更新日期: 2023-09-27 17:59:05

我目前正在使用C#开发asp.net,我需要显示一个消息框,确认用户的输入并重定向到另一个页面,我的代码如下:

protected void Button1_Click(object sender, EventArgs e)
{
    System.Text.StringBuilder sb = new System.Text.StringBuilder();
    sb.Append("<script language='javascript'>");
    sb.Append("if (confirm('YES OR NO?')){ /*some javascript code*/ }");
    sb.Append("</script>");
    Page.RegisterStartupScript("FocusScript", sb.ToString());
   Response.Redirect("Default.aspx");
}

这里的问题是直接重定向到下一页而不显示消息框。如果我删除Response.Redirect("Default.aspx");,它将成功显示消息框。我认为这里可能是Response.Redirect()javascript 相比具有更高的优先级

我试过使用

sb.Append("if (confirm('YES OR NO?')){ window.location.href = '"Default.aspx"; }'");

与其使用Response.Redirect(),但页面没有被重定向,我应该怎么做才能解决这个问题?

由于响应,Javascript被忽略.重定向()

您绝对需要在服务器端处理这个问题吗?事实上,这正是一件非常简单的事情变得令人困惑的地方。

例如,如果你可以用Javascript/jQuery处理它,你可以做一些简单的事情,比如:

$('#Button1').click(function(){
   if (confirm("Yes or No?")){
      window.location = "/default.aspx";
   }
});

有一个在客户端点击事件中使用添加javascript的选项

例如:-

<asp:button id="Button1" OnClientClick="javascript:return confirm('Are you sure?');" runat="server" onclick="Button1_Click" />

然后在代码端简单地重定向页面。

Confirm是一个JavaScript函数,它在客户端执行。注册后,您会立即重定向到另一个页面,因此该函数永远不会执行。

Page_Load 上添加以下代码

Button1.Attributes.Add("onclick", "if(confirm('do you want to redirect?')){}else{return false}");

现在,点击ur按钮将首先触发java确认模式框。

至于按钮1,点击

protected void Button1_Click(object sender, EventArgs e)
{
   Response.Redirect("Default.aspx");
}

这个想法是-只有在用户点击OK 确认后,您的codeehind Button1_Click事件才会触发

我认为最好在页面加载时为按钮添加一个属性,并让button_click函数只重定向。类似这样的东西(页面加载):

button.attribute.add("onclick","Javascript:confirmFunction();")

在按钮点击只有这个:

protected void Button1_Click(object sender, EventArgs e)
{       
   Response.Redirect("Default.aspx");    
}

最后在JS中有这样的:

<script>
function confirmFunction()
{
    if(Confirm("Yes OR NO") 
       //Add your JS Code
       return true; //will pass onto server
    else
       //Add your JS Code
       return false; //will not go to server
}
</script>

HTH