2013-06-04 2 views
0

В моем приложении ASP.NET C# есть много разных сообщений об ошибках, которые я хотел бы отображать.Центральная страница для сообщений об ошибках

Пути я показываю мое сообщение об ошибке является попами путем через:

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

Поскольку существует много различных сообщений об ошибках (некоторые повторяются по страницам), и у меня есть так много разных страниц в моем приложении - я d хотел бы поместить все сообщение об ошибке на централизованную страницу и ссылаться на нее каким-то образом - так что, когда мне нужно изменить свое сообщение об ошибке, мне нужно изменить только одну страницу, а не ВСЕ ВСЕ страницы.

Каков наилучший способ для этого?

Мне кажется, мне нужно создать страницу .cs? И для каждого сообщения об ошибке есть другой идентификатор.

Это похоже на очень простую вещь, но я немного потерял, как начать с нее.

Может ли кто-нибудь посоветовать лучший способ сделать это?

Спасибо.

+0

Таким образом, вы, вероятно, захотите записать ошибки в базу данных, а затем просто создать страницу отчетов, которая отображает их все в сетке или что-то в этом роде. – box86rowh

+0

Кажется, вам нужна библиотека журнала ELMAH, у нее есть страница, чтобы просмотреть всю ошибку в вашем веб-приложении. –

+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 = «сообщение об ошибке 1», а затем включите ее на мою страницу aspx.cs? Как мне вызвать errorMs1 на странице aspx.cs? (Извинения, я новичок с js!) –

+0

Попробуйте что-нибудь вроде этого: http: //www.devcurry.com/2009/01/execute-javascript-function-from-aspnet.html – TGH

0

метод JS может быть определена в
* Мастер Page
* в пользовательских базового класса наследуется всеми страницами.

Смежные вопросы