2013-06-04 70 views
0

在我的ASP.NET C#應用程序中,我想顯示許多不同的錯誤消息。錯誤消息的中心頁面

我顯示我的錯誤信息的方式是通過流行的通過:

 Page.ClientScript.RegisterStartupScript(GetType(), "msgbox", "alert('My error message here');", true); 
     return; 

由於有許多不同的錯誤消息(跨頁一些重複的),我有我的應用程序這麼多不同的網頁 - 我我喜歡把所有的錯誤消息放在一個集中的頁面上,並以某種方式引用它 - 這樣當我需要更改錯誤信息時,我只需要在一個頁面中進行更改,而不是跨所有頁面進行更改。

這樣做的最好方法是什麼?

我想我需要創建一個.cs頁面?每個錯誤消息都有一個不同的ID。

這似乎是一件非常簡單的事情,但我對於如何開始它卻有點失落。

有人可以建議最好的方法來做到這一點?

謝謝。

+0

因此,您可能想要將錯誤寫入數據庫,然後只需將報告頁面顯示在網格中或其他位置即可。 – box86rowh

+0

似乎你需要ELMAH日誌庫,它有一個頁面來查看你的web應用中的所有錯誤 –

+0

Elmah是未處理的異常日誌記錄。這聽起來像他想通知用戶的事情,如驗證失敗。他想要一箇中心位置來管理這些文本。埃爾瑪不會那樣做我所知道的。 – mason

回答

6

我會添加擴展方法來顯示警報並保留資源文件中的所有異常字符串。然後我可以調用的方法如下

用法

this.ShowAlert(Resource1.MyException); 

拓方法

using System; 
using System.Web.UI; 

namespace WebApplication1 
{ 
    public static class Extensions 
    { 
     public static void ShowAlert(this Control control, string message) 
     { 
      if (!control.Page.ClientScript.IsClientScriptBlockRegistered("msgbox")) 
      { 
       var script = String.Format("alert('{0}');", message); 
       control.Page.ClientScript.RegisterStartupScript(control.Page.GetType(), "msgbox", script, true); 
      } 
     } 
    } 
} 

資源文件作爲字符串項添加到您的項目,並輸入信息與意義的全名。

+0

+1很好的例子! – IamStalker

+0

謝謝Damith - 我現在已經創建了一個資源頁errormsg.resx。我在那裏有一個名字爲:error1,值爲:我的測試錯誤消息。如何在我的.cs文件中的此頁面上調用以顯示error1的值? –

+0

我現在唯一的問題是我不知道如何調用Resource1頁面。當我參考我的資源頁面時,我的頁面無法識別它。有任何想法嗎? –

1

由於您似乎顯示JavaScript錯誤消息,我會創建一個JS包含文件並在那裏定義JS方法。這樣你可以在包含JS文件的所有頁面上重用這些方法。

https://softwareengineering.stackexchange.com/questions/91242/what-is-the-best-way-to-include-javascript-file-using-script-tag

+0

謝謝TGH!因此,我創建了一個新的* .js頁面,並添加了諸如var errorMs1 =「error message 1」之類的內容,然後將其包含在我的aspx.cs頁面中?我如何從aspx.cs頁面調用errorMs1? (道歉,我是一個js新手!) –

+0

嘗試這樣:http://www.devcurry.com/2009/01/execute-javascript-function-from-aspnet.html – TGH

0

JS方法可以在
定義*母版頁
*在所有頁面繼承了自定義的基類。

相關問題