質問

私は前にこれを行っているが、私はどこか、どのように覚えているように見えることはできません知っています。

私は、サイトコアの項目へのリンクを作成します。 このコード:

Sitecore.Data.Items.Item itm = Sitecore.Context.Database.GetItem(someID);
return itm.Paths.Path.ToString();

は、次の文字列を生成します:

http://localhost/sitecore/content/Home/Item1/Item11/thisItem

私の代わりにこの文字列を持っていると思います:

http://localhost/Item1/Item11/thisItem.aspx

の項目へのパスを取得するための正しい方法は何ですか?この場合、私は、通常のサイトコアのリンクを使用することはできません。

Sitecore.Web.UI.WebControls.Link
役に立ちましたか?

解決

あなたはより最近の(8.2-6でテストし、あまりにも9で動作するはずです)サイトコアのV6か何かを実行していると仮定すると、このいずれかを必要としています:

Sitecore.Links.LinkManager.GetItemUrl(item);

他のヒント

それでもサイトコア5.3を使用している場合は、

、あなたはこれを使用することができます。警告され、この方法は、サイトコア6.0で廃止されました。

string url = item.Paths.GetFriendlyUrl();

あなたのWebコントロールます:

<asp:HyperLink ID="HyperLinkItem" runat="server">
    Item
</asp:HyperLink>

あなたのコード:

var homeItem = Sitecore.Context.Database.GetItem("/sitecore/content/Home");
HyperLinkItem.NavigateUrl = Sitecore.Links.LinkManager.GetItemUrl(homeItem);

あなたは以下のようにアイテム・リンクをレンダリングすることができます

Sitecore.Data.Items.Item itm = Sitecore.Context.Database.GetItem(someID);
return Sitecore.Links.LinkManager.GetItemUrl(itm);

これを試してみてください。

  <asp:HyperLink ID="hlItem" runat="server">

    </asp:HyperLink>

aspx.cs

   Sitecore.Data.Items.Item itm = Sitecore.Context.Database.GetItem("/sitecore/content/Home");

    hlItem.Navigateurl =sitecore.links.linkmanager.getitemurl(itm);

また、これにより行うことができます:

Item.Paths.FullPath

これは同じです

Sitecore.Links.LinkManager.GetItemUrl(item);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top