2010-03-06 3 views
1

Я не понимаю, как закодировать статический словарь, содержащийся в статическом классе, с моей страницы aspx. У меня есть это для статического классаКак перечислить статический словарь, содержащийся в статическом классе, из asp.net (aspx) страницы

public static class ErrorCode 

{ 
    public static IDictionary<int, string> ErrorCodeDic; 

    static ErrorCode() 
    { 
     ErrorCodeDic = new Dictionary<int, string>() 
     { 
      {1, "a problem"}, 
      {2, "b problem"} 
     }; 
    } 
} 

БОЛЕЕ КОНКРЕТНЫЕ я могу заставить его работать по буквам его, как это в ASPX части

foreach(System.Collections.generic.KeyValuePair<int, string> kvp in MyLibrary.Dictionaries.ErrorCode.ErrorCodeDic) 

Но я думал, что я мог обсчитывать его объявление переменных в коде позади?

Public KeyValuePair<int, string> error; 
Public ErrorCode.ErrorCodeDic ErrorCodes; OR 
Public ErrorCode.ErrorCodeDic ErrorCodes = ErrorCode.ErrorCodeDic; " 

Я получаю ошибки построения «Имя типа„ErrorCodeDic“не существует в типе ErrorCode.

А затем в использовании страницы ASPX

foreach(error in ErrorCodes) 

ответ

3

Вы можете цикл по всем парам как это:

Для обновленному случае, отделенного кода:

public IDictionary<int, string> ErrorCodes = MyLibrary.Dictionaries.ErrorCode.ErrorCodeDic; 

в ASPX:

foreach(var error in ErrorCodes) { } 

В качестве альтернативы, ничего в коде, и это в ASPX:

<%@ Import Namespace="MyLibrary.Dictionaries" %> 
....Content... 
<% foreach(var error in ErrorCode.ErrorCodeDic) { %> 
    .. something .. 
<% } %> 
+0

Я понимаю, что вы имеете в виду, что я пытался сделать что-то другое. возможно ли определить kvp keyvaluepair за пределами foreach и просто сделать то, что я опишу в своем «БОЛЕЕ СПЕЦИФИЧЕСКОМ» – Breadtruck

+0

@Breadtruck - вы можете сделать 'foreach (int code в ErrorCode.ErrorCodeDic.Keys) {' ... это то, что что ты имеешь в виду? –

+0

@Breaktruck - все еще не уверен, что я понимаю, вы можете добавить ссылку да, например: var var = MyLibrary.Dictionaries.ErrorCode.ErrorCodeDic; 'then do:' foreach (var kvp in dict) {.... ' –