验证后刷新asp.net网页

use*_*521 1 c# asp.net-3.5

我有一个asp.net网页(C#2008),用户可以在其中输入一个EmployeeID,当它们从文本框中跳出时(页面在代码隐藏中执行验证代码块),他们会得到一个消息框,提示他们选择一个下拉列表框中的两个值.

代码隐藏中的消息提示的代码是:

Response.Write("<script>window.alert('Please select Alpha or Beta')</script>");
Run Code Online (Sandbox Code Playgroud)

显示提示后,用户单击"确定"并返回页面,页面上的文本显示失真(标签中的文本大小更大,标签被包装到另一行等)

我尝试将一个Response.Redirect("UserProfileMaint.aspx");消息框放在代码隐藏中,但是现在,消息框没有出现;

所以这是我的顺序:

  • 用户输入EmployeeID
  • 如果用户未选择Alpha或Beta,则显示messagebox
  • 如果用户已选择Alpha或Beta,则不显示消息框

我想显示消息框验证,并确保页面上文本的外观不会失真.我怎样才能做到这一点?

Nic*_*ver 5

Response.Write直接写入输出流,放置它之前<html>浏览器非常困惑(导致文本问题).你想要做的是:

ClientScript.RegisterStartupScript(GetType(), "alert", 
                                  "alert('Please select Alpha or Beta');", true);
Run Code Online (Sandbox Code Playgroud)

ClientScript.RegisterStartupScript包括要在加载时运行的页面中的脚本,而不是过早地放入响应.最后一个参数:true告诉它将该警报包装在<script>标签中,使您的代码更加清晰.