Ресурсы Asp.net - предотвратить ошибку на странице, когда ссылка на ресурс недействительна - PullRequest
0 голосов
/ 20 сентября 2010

Я использую подобные ресурсы; "runat =" server "/>

Ресурсы хранятся в базе данных, а файлы ресурсов создаются при добавлении новых переводов. Иногда плохие ссылки на ключи случаются. Это приводит к ошибке на всей странице.

Как я могу предотвратить сбой всей страницы, когда ресурс не существует? Я просто хочу получить крошечное сообщение об ошибке, в котором отсутствует ресурс, например «Не найдено: Users.DetailsUserHeadline».

Я также хочу динамически извлекать ресурсы из кода позади, определяя ключ как строку «Users.DetailsUserHeadline» без каких-либо ошибок.

Предложения

1 Ответ

0 голосов
/ 20 сентября 2010

Если вы хотите использовать вместо этого ResourceKey, если ресурс не найден , просто измените метод, который используется для получения ресурса. Это должно выглядеть так:

public class ResourceManager
{
   public static string GetResource(string key)
   {
      string val = TryGet(key);
      if (string.IsNullorEmpty(val)) val = key;
      return val;
      //or you don't use a TryGet method
      //try
      //{
      //   val = GetTheResource(key);
      //}
      //catch (ResourceNotFoundException e)
      //{
      //   val = key;
      //}
   }
}

Если вы хотите показать подсказку, что ресурс не найден для пользователей , вам нужно написать собственное исключение, например:

public class ResourceNotFoundException : Exception
{
   // define the properties you want to get
}

И используйте throw new ResourceNotFoundException() при попытке получить ресурс. В вашей части пользовательского интерфейса вы можете поймать исключение и показать что-то пользователям.

...