发现现在很多朋友在cs代码中经常使用这种方法调用alert给访问者信息提示。
try
{
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
Response.Write(" <script language='JavaScript' type='text/javascript'>alert("ex.Message") </script>");
}
我也喜欢用alert提示信息,包括在进行程序测试的时候,alert一下某些可能错误代码。
但是在alert的时候最好不要用response.write输出的形式。为啥么来?有这么几个原因:1、使用不当容易失灵,这个经常发生,经常听到朋友问,我的alert咋不弹出来。2、不美观,大家都发现,当alert的窗口弹出时,整个背景停留在白色状态,很不舒服。3、不符合net的对象观,net等习惯对象说,其实所谓的面向对象编程很容易理解,就是把每一个具有单独功能的程序提取出来作为一个方法,供程序员随时调用。
所以对于这个部分我给大家一个建议,用net的自带方法,page.RegisterStartupScript或者是page.RegisterStartupScript,namespace LG.Utility
{
public class Common
{
public static void JsAlert(Page page, string msg)
{
page.RegisterStartupScript("", "<script defer=/"defer/">alert(/"" + msg + "/");</script>");
}
public static void JsAlertRedirect(Page page, string msg, string url)
{
page.RegisterStartupScript("", "<script defer=/"defer/">alert(/"" + msg + "/");location.href=/"" + url + "/"</script>");
}
我一般会这样写,把alert写成一个带参数的方法,搞一个专门的utility包,把类似的程序罗列,随时调用,以后任何项目拿过来就用,非常方便,而且net带的这两个方法绝不会出现刚才说的第二种情况。
Common.JsAlertRedirect(this.Page, "添加成功", "New.aspx");
使用时就是这样一句话而已。