C# 为什么';警报没有执行吗?

C# 为什么';警报没有执行吗?,c#,javascript,asp.net,alert,C#,Javascript,Asp.net,Alert,如果评论已经存在,我有一个控件。如果评论已经存在,我想警告访问者,如果此人在警报中单击“确定/是”,评论将被覆盖,如果此人按“否/取消”,评论将不会更新。但它不起作用,在调试过程中,警报行只是经过并更新,没有任何警报 if (ReviewExist(StoreID, UserID) != 0) { ScriptManager.RegisterStartupScript(this, this.GetType(), "Message", "confirm('Are you sure?');"

如果评论已经存在,我有一个控件。如果评论已经存在,我想警告访问者,如果此人在警报中单击“确定/是”,评论将被覆盖,如果此人按“否/取消”,评论将不会更新。但它不起作用,在调试过程中,警报行只是经过并更新,没有任何警报

if (ReviewExist(StoreID, UserID) != 0)
{
    ScriptManager.RegisterStartupScript(this, this.GetType(), "Message", "confirm('Are you sure?');", true);
    UpdateStoreReview(Description);
    Response.Redirect("Default");
}
else      
{
    AddStoreReview(Description);
}

您需要脚本中的脚本标记

ScriptManager.RegisterStartupScript(this, this.GetType(), "Message", "<script type='text/javascript'>confirm('Are you sure?');</script>", true);
ScriptManager.RegisterStartupScript(this,this.GetType(),“Message”,“confirm('you sure?');”,true);

这是因为您的
响应。重定向将控件重定向到另一个页面,该页面将忽略您的
注册表脚本

您需要做的是,如果您试图在按钮单击(更新按钮)中实现这一点,则在页面加载中尝试

if(!IsPostBack)    
{
 btnUpdate.Attributes.Add("OnClick","confirm('Are you sure?');");
}
然后可以将上述代码更改为

if (ReviewExist(StoreID, UserID) != 0)
{
    UpdateStoreReview(Description);
    Response.Redirect("Default");
}
else      
{
    AddStoreReview(Description);
}
注意
我认为您需要重定向到Default.aspx;但是如果您使用ASP.net,则
响应.redirect中缺少.aspx

<asp:Button ID="_btnSalvar" runat="server" Confirm="False" ConfirmType="None" Text="Are you sure?" Width="131px" OnClick="_btnSalvar_Click" />


中的示例将js包装在
标记中。您试过了吗?即使事情按照您的预期进行(即,在继续下一行之前执行客户端脚本),请注意,您没有(也无法)检查
confirm()
调用的结果…好的,但我只希望用户在已发布评论时看到警报。似乎每次按下按钮时都会出现警报,或者我错了吗?您可以在添加btnUpdate.Attributes.add之前添加一条If语句,该语句将检查用户是否已经添加了审阅