是否有一种更简单的方法来显示ASP.NET?

时间:2015-08-30 11:39:34

标签: c# asp.net web-applications

我使用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>");
}

同样,每个人都会在显示消息之前刷新页面! 是否有更简单的方法来显示消息对话框而不刷新页面?

3 个答案:

答案 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验证输入,然后在任何内容无效时显示弹出窗口。像这样你不必做回发,这提供了更好的用户体验。