#asp.net #web-controls
#asp.net #веб-элементы управления
Вопрос:
У меня есть веб-пользовательский элемент управления A, который использует другой веб-пользовательский элемент управления B. Внутри A у меня есть:
<prefixABC:b ... Prop1="value" />
Этот prop1 является общедоступным свойством, определенным в B.ascx:
<script runat="server">
...
public string Prop1 { get; set; }
...
</script>
Примечание: Я знаю, что я не должен был использовать код внутри файла ascx, но это внутреннее требование :/
У меня также есть разные среды: dev, staging, prod. Они в основном одинаковы (не идентичны, но очень похожи). Дело в том, что при разработке это работает нормально, но при подготовке и продлении я получаю это сообщение об ошибке:
Тип исключения: Сообщение об исключении HttpParseException: d:…A.ascx (6): ошибка CS1061: ‘ASP.B’ не содержит определения для ‘Prop1’ и не удалось найти метод расширения ‘Prop1’, принимающий первый аргумент типа ‘ASP.B’ (вам не хватает директивы using или ссылки на сборку?)
Я на 100% уверен, что код одинаков во всех средах. Кто-нибудь может сказать мне, что может быть причиной этой проблемы?
Комментарии:
1. Можете ли вы вставить полный тег control плюс регистрацию элемента управления
2. Я понял, в чем была проблема. У меня не было доступа к среде PROD, поэтому я не знал, какие файлы там были. Дело в том, что внутри той же структуры папок была версия элемента управления B (на самом деле, пара папок выше), которой там не должно было быть, и которая противоречила правильной. Когда я удалил ее, все начало работать прекрасно.
3. Эй, ответьте на свой собственный вопрос и примите его. Позволяет людям знать, что им не нужно смотреть на вопрос, поскольку на него был дан ответ. Вопрос по порядку.
4. Привет, киберхербалист, хорошая идея 🙂 Спасибо!
Ответ №1:
Я понял, в чем была проблема. У меня не было доступа к среде PROD, поэтому я не знал, какие файлы там были. Дело в том, что внутри той же структуры папок была версия элемента управления B (на самом деле, пара папок выше), которой там не должно было быть, и которая противоречила правильной. Когда я удалил ее, все начало работать прекрасно.