1

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)
4

1 に答える 1

3

次のようにすべてのペアをループできます。

foreach( KeyValuePair<int, string> kvp in ErrorCode.ErrorCodeDic)
{
  Response.Write(string.Format("Key = {0}, Value = {1}", kvp.Key, kvp.Value));
}

更新されたケースでは、分離コードで:

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 ..
<% } %>
于 2010-03-06T03:49:16.670 に答える