如何在Composite C1中获取列表/详细信息URL?

时间:2014-09-01 19:34:03

标签: c1-cms

我建立菜单链接,所以我需要知道我在哪里。

列表网址如下所示: http://domain.com/list

详细信息页面网址看起来像http://domain.com/list/detail

我可以搜索硬编码的 / list 部分,但它会被硬编码。

我使用下面的PathInfo函数,我总是使用0作为参数:

string PathInfo (int segment)
{
    string pathInfo = C1PageRoute.GetPathInfo()??string.Empty;
    string[] segments = pathInfo.Split('/');
    string stringValue;
    stringValue = segments.Skip(segment + 1).FirstOrDefault();
    return stringValue;
}

...

// register the use of the path info
C1PageRoute.RegisterPathInfoUsage();    
string kuruladi = PathInfo(0);

...

 @foreach (var kurul in kurullar)
    {
      string currentpageitem = "";
      if (kurul.KurulAdi == kuruladi)
      {
         currentpageitem = "current_page_item";
      }

      <li class="page_item page-item-1167 @currentpageitem">
        <a href="@kurul.KurulAdi">@kurul.KurulAdi</a>
      </li>
    }

由于我不知道我在哪里(列表或详细信息),因此PathInfo(0)无法提供帮助。一个不正确的示例链接: http://domain.com/Sample-Detail-Page 它应该是 http://domain.com/Kurul/Sample-Detail-Page

如何编写更通用的代码来提取确切位置然后构建正确的链接?至少我是列表或详细信息,所以我可以使用0或1作为参数。

1 个答案:

答案 0 :(得分:1)

@ CurrentPageNode.Url是缺失的部分:

<li class="page_item page-item-1167 @currentpageitem">
   <a href="@CurrentPageNode.Url/@kurul.KurulAdi">@kurul.KurulAdi</a>
</li>