Элементы управления ASP.NET нельзя ссылаться на код в Visual Studio 2008
Итак, моя визуальная студия сломана. Я говорю это НЕ преждевременно, так как это был мой первый ответ, чтобы увидеть, где я перепутался в своем коде. Когда я добавляю элементы управления на страницу, я не могу ссылаться на все их в коде позади. Некоторые из них я могу, кажется, что первые несколько я положил на страницу работу, а затем просто останавливается.
Сначала я подумал, что это может быть тип управления, поскольку изначально я пытался ссылаться на ретранслятор внутри панели обновлений. Я знаю, что правильно ссылаюсь на код на моей странице aspx. Но на всякий случай это была ошибка с моей стороны, я начал воссоздавать страницу с нуля и на этот раз получил еще несколько элементов управления, прежде чем VS прекратил распознавать мои элементы управления.
После создания моей страницы дважды и застревания я подумал, что это все еще тип контроля. Я создал новую страницу и просто набросил на нее несколько ярлыков. Никакие кости, сборка не удается при ссылке на элемент управления позади кода.
В возможно несвязанной заметке, когда я переключаюсь на страшный "дизайн" на страницах aspx VS 2008, ошибки выходят и перезапускаются.
Я уже подал заявку на участие в Microsoft. Я удалил все надстройки, переустановил визуальную студию.
Любой, кто хочет видеть мой код, просто спрашивает, но я использую прямую визуальную студию WYSIWYG "новая страница aspx", которая ничего не представляет.
Я сомневаюсь, что кто-то столкнулся с этим, но есть ли у вас?
У кого-то были проблемы с успехом, связанные с этими вещами с Microsoft? Любой способ ускорить этот билет, не заплатив??? Я разговаривал с представителем Microsoft в течение нескольких дней, но мне не повезло, и я мертв в воде.
Jon Limjap: Я отредактировал название, чтобы сделать его понятным и описательным, и убедитесь, что никто не считает его оскорбительным. "Foo-barred" точно не составляет правильного названия вопроса, хотя ваш вопрос явно действительный.
Ответы
Ответ 1
попробуйте очистить локальный кэш VS. найдите свой проект и удалите папку. папка создается VS, по какой причине я честно не понимаю. но я имел несколько случаев, когда его очищали и делали переделанные исправления... надеюсь, что это все, что вам нужно.
здесь
%Temp%\VWDWebCache
и, возможно, здесь
%LocalAppData%\Microsoft\WebsiteCache
Ответ 2
Вышеописанное исправление (удаление временных файлов) не помогло мне. Мне пришлось удалить файл PageName.aspx.designer.cs
, затем щелкните правой кнопкой мыши мою страницу и выберите "Преобразовать в веб-приложение" из контекстного меню.
Когда Visual Studio попыталась перестроить файл конструктора, он столкнулся (и показал мне) источник проблемы. В моем случае VS потерял ссылку на DLL, необходимую для одного из элементов управления на моей странице, поэтому мне пришлось очистить созданные папки bin в моем проекте.
Ответ 3
Является ли элемент управления, который вы пытаетесь ссылаться внутри репитера?
Если это так, вам нужно искать их с помощью метода FindControl.
Например, для:
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server">stest</asp:LinkButton>
</ItemTemplate>
</asp:Repeater>
Вам нужно будет сделать это, чтобы ссылаться на него:
LinkButton lb = Repeater1.FindControl("LinkButton1");
Ответ 4
В моем случае я работал с некоторым старым кодом веб-сайта, который я преобразовал в решение VS2008. Я столкнулся с этой же проблемой.
Для меня исправить было щелкнуть правой кнопкой мыши проект "Веб-сайты" в обозревателе решений и выбрать "Преобразовать в веб-приложение". Это создало файлы designer.cs
для всех страниц, которые до сих пор не имели этих файлов.
Ответ 5
вы также найдете файлы .net temp, которые можно безопасно удалить здесь:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Временные файлы ASP.NET
Ответ 6
Я заметил, что это происходит из-за отсутствующего файла .designer.cs. После исправления этой проблемы в моем случае (в основном у меня были эти файлы, скопированные из веб-проекта VS 2005 в проект VS 2010): Щелкните правой кнопкой мыши на .aspx файле и выберите меню "Преобразовать на веб-сайт", это создаст файл .designer.cs и то он должен работать с файлом.
Ответ 7
В моем случае новые элементы управления asp, которые я добавил к существующим, не были обнаружены.
Для меня работала перекомпиляция, переименовав существующий элемент управления, чтобы разбить сборку, например: изменение <asp:TextBox ID="txtTitle" runat="server" />
на <asp:TextBox ID="txtTitle2" runat="server" />
Когда я исправил идентификатор и перестроил новый файл конструктора, был создан с исправленными идентификаторами и новыми элементами управления.
Ответ 8
мы не можем изменить код при запуске приложения. Чтобы сделать это, сначала нажмите кнопку остановки наверху, которая остановит ваше приложение. Теперь нажмите кнопку в режиме разработки, она будет вставлять код в .aspx. cs, затем напишите код в нем
Ответ 9
Для меня удалено удаление/переименование файлов в следующем местоположении:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\myvirtualwebsite\e331e0a9
Ответ 10
Проверьте свой файл aspx на ошибках, как только я столкнулся с этой проблемой
Ответ 11
У меня это случилось несколько раз, и это случилось снова сегодня по новой причине. Обычно я запускаю свой проект через IIS, но мне нужно его локально запускать для отладки. Обычно я запускаю порт 80 в IIS и 81 в debug, но у меня были некоторые настройки в файле web.config, который использовал 80, поэтому я просто убил сайт в IIS и переключил веб-сайт на порт 80 в настройках проекта. По какой-то причине это все испортило и создало проблему, описанную в OP. Я начал пробовать вещи один за другим, включая все рекомендации, упомянутые здесь, но переключение порта на 81 в настройках проекта - это то, что закончилось тем, что работало.
Ответ 12
щелкните правой кнопкой мыши название проекта и выберите "Очистить". затем проверьте папку bin, если она оставлена. если это так, удалите его. это оно. просто перестройте, и все будет хорошо работать.
Ответ 13
Просто чтобы добавить мои два цента с этой проблемой.
Единственное, что из всего выше сказанного работало для меня, это "Очистить", а затем удалить все, что осталось в папке bin. После этого переработали и все элементы управления.
Ответ 14
FYI... У меня тоже была эта проблема, и я решил ее исправить, удалив существующий файл .designer.vb, щелкнув правой кнопкой мыши на проекте и выбрав "Преобразовать в веб-приложение". Затем он показал реальную "ошибку", которая заставляла графический интерфейс дергать себя. Оказалось, что я использовал одно и то же имя для двух других меток, но это не отображалось в окне списка ошибок. Однажды я переименовал одну из двух других ярлыков, которые она построила, и перестала беспокоить меня.
Ответ 15
Это также может произойти, если свойство Inherits
на исходной странице не соответствует имени класса в коде. Вообще говоря, это, вероятно, произойдет, только если вы скопируете/вставляете файл .ascx/.aspx и забыли обновить его.
Пример:
<%@ Control AutoEventWireup="false" CodeBehind="myControl.ascx.vb" Inherits="myProject.myWrongControl" %>
Код за классом:
Partial Public Class myControl
Ответ 16
Вы должны добавить
runat="server"
для каждого элемента вашей страницы.