0

我在 asp.net 中创建了一个连接类,以将值保存在我编写了以下代码的列表中,但它正在生成MessageBox不存在的错误。我在谷歌上搜索并找到了几个答案,但这些在这里也不起作用我的代码是:

 public static class Connection
    {
        public static ArrayList GetCoffeeByType(string coffeetype)
        {
            ArrayList list = new ArrayList();
            try
            {
                mydbEntities db = new mydbEntities();
                var query = from p in db.tableabc select p;
                list = query.ToList();

            }
            catch (Exception ex)
            {
               MessageBox.Show(exceptionObj.Message.ToString());

            }
            return list;
        }
}

我试过这个System.Web.UI.ScriptManager.RegisterStartupScript(this, typeof(Page), "alert", "alert('" + Message + "')", true);——但它也显示错误,this而且Message——我怎样才能显示这个消息框?

4

2 回答 2

3

您将无法MessageBox.Show在 ASP.NET 应用程序中调用。试试这个:

catch (Exception ex)
{
    var script = "alert(" + System.Web.HttpUtility.JavaScriptStringEncode(ex.Message, true) + ")";
    System.Web.UI.ScriptManager.RegisterStartupScript(this, typeof(Page), "alert", script, true);
}

请注意,您需要获取已Message捕获异常的属性ex,并且您应该使用它JavaScriptStringEncode来安全地转义警报消息。

于 2013-11-10T07:58:43.367 回答
1

这是一个名为 Alert 的静态类,带有一个名为 Show 的公共方法。实现尽可能简单。只需将 .cs 文件放在您网站上的 App_Code 文件夹中,您就可以立即从所有页面和用户控件中访问该方法。

using System.Web;
using System.Text;
using System.Web.UI;

/// <summary>
/// A JavaScript alert
/// </summary>
publicstaticclass Alert
{

/// <summary>
/// Shows a client-side JavaScript alert in the browser.
/// </summary>
/// <param name="message">The message to appear in the alert.</param>
publicstaticvoid Show(string message)
{
   // Cleans the message to allow single quotation marks
   string cleanMessage = message.Replace("'", "\\'");
   string script ="<script type=\"text/javascript\">alert('"+ cleanMessage +"');</script>";

   // Gets the executing web page
   Page page = HttpContext.Current.CurrentHandler as Page;

   // Checks if the handler is a Page and that the script isn't allready on the Page
   if (page !=null && !page.ClientScript.IsClientScriptBlockRegistered("alert"))
   {
      page.ClientScript.RegisterClientScriptBlock(typeof(Alert), "alert", script);
   }
}    
}

示范

该类使您可以随时向任何页面添加 JavaScript 警报。下面是一个Button.Click使用显示状态消息的方法的事件处理程序示例。

void btnSave_Click(object sender, EventArgs e)
{
   try
   {

      Alert.Show("Your Message");
   }
   catch (Exeception ex )
   {
      Alert.Show(ex.Message);
   }
}

在你的情况下:

public static class Connection
    {
        public static ArrayList GetCoffeeByType(string coffeetype)
        {
            ArrayList list = new ArrayList();
            try
            {
                mydbEntities db = new mydbEntities();
                var query = from p in db.tableabc select p;
                list = query.ToList();

            }
            catch (Exception ex)
            {
               Alert.Show(ex.Message);

            }
            return list;
        }
}
于 2013-11-10T08:05:25.963 回答