我使用ASP.NET和C#创建表单。当用户单击提交时,我验证输入并继续。如果由于任何原因输入无效,我会显示警告,通知用户问题。如果一切都结束了,我会用给定的输入完成我的工作。我的问题是当我单击提交按钮时,页面刷新,删除所有输入。以下是我在后面的代码中所做的事情的一个例子:
saveButton.Click += (s, e) => {
var errors = "";
if (string.IsNullOrWhitespace(myField.Text)) errors += "myField is empty or consists of only whitespace.\n";
//do this for each field
if (errors == "") { //no errors found!
//use the input
}
else { //something's invalid
//alert the user
ShowMessage("Please review these problems before continuing:\n\n" + errors);
}
};
不会抛出任何异常,但如果故意发送无效输入,页面会在显示弹出窗口之前刷新。这是我为ShowMessage()
尝试的内容:
private void ShowMessage(string msg) {
ClientScript.RegisterClientScriptBlock(GetType(), DateTime.Now.ToString(), "alert(\'" + message + "\');", true);
}
和
private void ShowMessage(string msg) {
HttpContext.Current.Response.Write("<script language=\"JavaScript\">alert(\"" + message + "\");</script>");
}
同样,每个人都会在显示消息之前刷新页面! 是否有更简单的方法来显示消息对话框而不刷新页面?
答案 0 :(得分:0)
这个怎么样:
ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), title,
"alert('" + somemessage + "');", true);
或喜欢
ScriptManager.RegisterStartupScript(this,this.GetType(),"redirect",
"alert('message'); window.location='" +
Request.ApplicationPath + "yourPage.aspx';",true);
答案 1 :(得分:0)
您可以在on按钮单击hundler中包含此C#代码:
MessageBox.Show("Wrong input.", " Error :", MessageBoxButton.OK, MessageBoxImage.Stop);
您可以添加以下内容关闭第一个窗口:
Close();
答案 2 :(得分:0)
您可以使用jquery验证输入,然后在任何内容无效时显示弹出窗口。像这样你不必做回发,这提供了更好的用户体验。