Элементы управления 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"

для каждого элемента вашей страницы.