【问题标题】:How to create a pop-up message box to display error message in .net c# web-applications如何在.net c# web-applications 中创建一个弹出消息框以显示错误消息
【发布时间】:2011-05-23 01:53:38
【问题描述】:

有谁知道如何在服务器端创建一个弹出消息框,以便在保存过程失败时在弹出消息框中显示错误消息?

例子:

   protected void btnSave_Click(object sender, EventArgs e)
   {
       try
       {
           using (TransactionScope scope = new TransactionScope())
           {
               //save process

               scope.Complete();
               Response.Redirect(url);
           }
       }
       catch (TransactionAbortedException ex)
       {
          //pop-up message box to show error message
       }
       catch (ApplicationException ex)
       {
          //pop-up message box to show error message
       }
   }

如何在 catch 中创建一个弹出消息框,以便在保存过程失败时向用户弹出错误消息框?

【问题讨论】:

  • 您希望弹出窗口出现在服务器还是客户端?
  • @Kiranu - 请告诉我这是一个诡计问题 - 您无法在服务器上弹出消息框!
  • @slugster - 我知道......但不清楚他想要的东西是可能的(客户端中的弹出窗口)还是不可能的(由 Windows 服务创建的表单)

标签: c# .net web-applications


【解决方案1】:

尝试使用Page.RegisterStartupScriptClientScript.RegisterStartupScript 方法。

【讨论】:

  • Page.RegisterStartupScript 已弃用。
  • 嗨 Drew,获得公认答案的一个好方法是详细说明问题中的概念,然后提供一个具体的工作示例。替代品也总是好的。随着时间的推移,一个完整的答案可能会为您产生更多的 Stack Overflow 积分。希望这会有所帮助。
【解决方案2】:
ClientScript.RegisterStartupScript(
    this.GetType(), "myalert", "alert('" + errorText + "');", true);

 Response.Write(
     @"<SCRIPT LANGUAGE=""JavaScript"">alert('" + errorText + "')</SCRIPT>");

【讨论】:

  • @Alex Aza;我在 try{}catch() 之前应用了您提供的代码 .. 似乎没有弹出任何消息框
  • @Jin Yong - 很奇怪,我在 .NET 2、3.5 和 4 上对此进行了测试 - 对我有用。
  • 可能浏览器关闭了javascript。尝试打开它。
  • @Jin - 我刚刚意识到,你不能像这样测试它,你不能在 try catch 之前应用它,因为你在正常情况下重定向到运行Response.Redirect(url);,它重定向到另一个页面。要正确测试,请添加一条 my 行并在该行之后返回。
  • @Jin Yong - 出于好奇,对您有用的解决方案是什么?你用过'Page.RegisterStartupScript'吗?
【解决方案3】:

这是一种方法:

/// ---- ShowAlert --------------------------------
///     
/// <summary>
/// popup a message box at the client    
/// </summary>
/// <param name="page">A Page Object</param>
/// <param name="message">The Message to show</param>

public static void ShowAlert(Page page, String message)
{
    String Output;
    Output = String.Format("alert('{0}');",message);
    page.ClientScript.RegisterStartupScript(page.GetType(), "Key", Output, true);
}

【讨论】:

  • 这与我的回答有何不同? :)
  • @Alex - 当我发布我的答案时,你的答案还不可见。
  • 这很奇怪。我们的答案相隔 15 分钟。所以现在当你看到这个时,你可以删除重复的答案,或者把它改成不同的,对吧?
【解决方案4】:

虽然提到的 alert() 脚本没问题,但它们看起来很业余。我会推荐两个选项。

  1. 在您的页面上有一个标签,该标签通常以红色和粗体字体隐藏。然后让它可见并将文本设置为错误。

  2. 1234563这是一个例子:http://jqueryui.com/demos/dialog/#modal-message

当然,如果您希望您的应用看起来更可靠,请不要向他们显示任何错误。 :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多