Ошибка синтаксического анализатора при использовании ScriptManager
-
01-07-2019 - |
Вопрос
У меня есть страница 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 решила проблему.