EPiServer: CS1061: "System.Web.UI.Control" не содержит определения "CurrentPage"...?

Возникла небольшая проблема с этой ошибкой EPIServer: CS1061: "System.Web.UI.Control" не содержит определения для "CurrentPage" и не имеет метода расширения "CurrentPage", принимающего первый аргумент типа "System.Web.UI.Control". 'может быть найдено (вам не хватает директивы using или ссылки на сборку?)

когда я пытаюсь получить доступ к методу с параметром из моего файла ascx. Файл ascx:

<div id="nav">
    <ul role="menu">
      <li <%# GetMenuClass(Container.CurrentPage)%> role="menuitem">
            <%= GetNewsPage %>
            <%--<a href="#">News</a>--%>
        </li>
        <li <%# GetMenuClass(Container.CurrentPage) %> role="menuitem">
            <%= GetClientPage %>
            <%--<a href="#">Clients</a>--%>
        </li>
    </ul>
</div>

Метод в коде:

protected string GetMenuClass(PageData page)
    {


        if (page.IsSelected(CurrentPage))
        {
            return "class=\"menu-item selected\"";
        }

        return "class=\"menu-item\"";
    }

что я хочу достичь, это что-то вроде этого (если выбрана страница новостей):

<div id="nav">
<ul role="menu">
<li class="menu-item selected" role="menuitem"> News </li>
<li class="menu-item" role="menuitem">
<a href="#">Clients</a>
</li>
</ul>
</div>
</nav>

Я рад, если кто-то может помочь.

2 ответа

Похоже, тип свойства Container - System.Web.UI.Control. Я не уверен, что такое контейнер в вашем случае, но похоже, что вам нужно привести его к соответствующему конкретному типу, такому как EPiServer.UserControlBase, EPiServer.PageBase или EPiServer.Web.WebControls.PageControlBase. Эти типы содержат свойство CurrentPage, которое является PageData.

Я отмечаю, что вы используете синтаксическое выражение привязки (<<# #) и используете контейнер, так что я предполагаю это в элементе управления с привязкой к данным, например, в повторителе?

Если это так, попробуйте изменить ваш вызов GetMenuClass следующим образом

GetMenuClass((PageData)Container.DataItem)

при условии, что вы связали коллекцию объектов PageData с ретранслятором

Другие вопросы по тегам