Ошибка синтаксического анализатора при использовании ScriptManager

StackOverflow https://stackoverflow.com/questions/94632

Вопрос

У меня есть страница ASP.NET, на которой есть менеджер сценариев.

<form id="form1" runat="server">
    <div>
        <asp:ScriptManager EnablePageMethods="true" ID="scriptManager2" runat="server">
        </asp:ScriptManager>
    </div>
</form>

Страница переопределяет абстрактное свойство, возвращающее ScriptManager, чтобы позволить базовой странице использовать его:

public partial class ReportWebForm : ReportPageBase
{
    protected override ScriptManager ScriptManager
    {
        get { return scriptManager2; }
    }

    ...
}

И базовая страница:

public abstract class ReportPageBase : Page
{
    protected abstract ScriptManager ScriptManager { get; }

    ...
}

Когда я запускаю проект, я получаю следующую ошибку синтаксического анализатора:

Сообщение об ошибке синтаксического анализатора: Базовый класс включает в себя поле 'scriptManager2', но его тип (System.Web.UI.ScriptManager) несовместим с типом элемента управления (System.Web.UI.ScriptManager).

Как я могу решить эту проблему?

Обновить:Менеджер сценариев, входящий в состав файла конструктора, является:

protected global::System.Web.UI.ScriptManager scriptManager;
Это было полезно?

Решение

Я могу скомпилировать ваш пример кода нормально, вам следует проверить свой файл конструктора, чтобы убедиться, что все в порядке.

Редактировать:единственное, о чем еще я могу думать, это о том, что это какая-то ссылочная проблема.Использует ли ваша ссылка System.Web.Extensions правильную версию для вашей целевой платформы?(должно быть 3.5.0.0 для .net 3.5 и 1.0.6xxx для 2.0)

Другие советы

Я обнаружил, что моя библиотека System.Web.Extensions, на которую ссылаются (v3.5.sth), не имела той же версии, что и ссылка в web.config (v.1.0.6sth).Замена библиотеки dll (3.5) на старую версию System.Web.Extensions решила проблему.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top