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.ShowASP.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

これは、Show と呼ばれる 1 つのパブリック メソッドを持つ Alert と呼ばれる静的クラスです。実装は可能な限り簡単です。Web サイトの App_Code フォルダーに .cs ファイルを配置するだけで、すべてのページとユーザー コントロールからメソッドにすぐにアクセスできます。

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 に答える