-1

私が継承した Web アプリケーションには、渡されたオブジェクトの状態に基づいてアクセスする必要がある URL を決定するページが含まれています。

URL はサイトマップ内に保持され、それらすべてを取得するメソッドがあります。

private Dictionary<string, string> GetUrls() {
    var urls = new Dictionary<string, string>();
    var provider = SiteMap.Provider;

    var page1 = provider.FindSiteMapNodeFromKey("page1");
    var page2 = provider.FindSiteMapNodeFromKey("page2");


    if (page1 == null || page2 == null)
    {
        throw new ApplicationException("Pages not found in sitemap");
    }

    urls["page1URL"] = page1.Url.ToString(CultureInfo.InvariantCulture);
    urls["page2URL"] = page2.Url.ToString(CultureInfo.InvariantCulture);

    return urls;
}

残念ながら、このメソッド内では、page1 と page2 は常に null

<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" enableLocalization="true">
    <siteMapNode resourceKey="Concessions" rule="AllowRead">
        <siteMapNode url="/page1.aspx" resourceKey="page1" rule="AllowAuthorised"/>
        <siteMapNode url="/page2.aspx" resourceKey="page2" rule="AllowAuthorised"/>
    </siteMapNode>
</siteMap>

このプロセスを通じてデバッグを試みましたが、問題に近づきません。要約すると、サイトマップ内で定義されたページの URL を返すには、このメソッドが必要です。

4

1 に答える 1

0

まったく関係のないエラーです。時間を無駄にして申し訳ありません

于 2012-05-14T14:27:12.417 に答える