ASP.NET Event Subs в VS 2010 - PullRequest
       24

ASP.NET Event Subs в VS 2010

1 голос
/ 14 декабря 2010

У меня проблема с веб-сайтом, для которого я использую VS 2008, до тех пор, пока несколько месяцев назад я не купил VS 2010. Я не обновлял веб-сайт - VS 2010 спросил меня, хочу ли я и я сказал «нет». Я столкнулся с проблемой, когда впервые попытался использовать VS 2010 для редактирования этого веб-сайта - нашел обходной путь, который работал последние 3 месяца. Но теперь, внезапно, обходной путь кажется неудачным.

При работе на веб-сайте из окна дизайна (либо в 2008, либо в 2010 году) можно дважды щелкнуть, например, кнопку, и он откроет код для события нажатия кнопки.

По какой-то причине, которую я до сих пор не выяснил, VS 2010 решает сделать совершенно новый сабвуфер событий, в дополнение к тому, который я уже получил . Например, у меня есть кнопка с событием нажатия (создано в VS 2008), например:

Protected Sub btn_next_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btn_next.Click
...
End Sub

Как только я открываю веб-сайт в VS2010 и дважды щелкаю кнопку в окне дизайна, он создает совершенно новое событие (дублирует весь код внутри «sub / end sub»). ) вот так:

Protected Sub btn_next_Click1(ByVal sender As Object, ByVal e As System.EventArgs) Handles btn_next.Click
...
End Sub

(обратите внимание, что в дубликате подпрограммы события он меняет имя подпрограммы, добавляя '1')

Если я удаляю дубликат саба, он просто возвращается в следующий раз, когда я дважды щелкаю кнопку в конструкторе.

Не говоря уже о том, что, если я удаляю дубликат подпрограммы и пытаюсь создать сайт, я получаю сообщение об ошибке, сообщающее, что он не может найти 'Sub btn_next_Click1 ...'. (Я проверил, что у разметки кнопки нет атрибута onclick = ..., который заставил бы ее искать эту конкретную подпрограмму.

Наконец, если я оставлю дубликат подпрограммы там ... событие обрабатывается дважды (исходный подпрограмма запускается один раз, а дубликат подпрограммы запускается один раз, поскольку они оба "обрабатывают" одно и то же событие).

Мой обходной путь - удалить исходный саб. Это, казалось, работало некоторое время. Но с тех пор, как я вчера опубликовал приложение, дубликат подпрограммы запускался дважды, хотя исходный подпункт был удален. Я проверил это, добавив остановки в отладчике, а затем пошагово проходя каждую строку. Этот обходной путь, который работал несколько месяцев, вдруг не работает. Что бы я ни сделал для этого, я не вижу этого.

Кстати, «повторная публикация», о которой я говорю, была для другой страницы на веб-сайте. Страница, на которой возникла проблема, о которой я говорю в этом сообщении, не изменялась месяцами и все это время работала нормально.

Есть опыт? Я собираюсь перекодировать мое приложение с нуля в VS 2010?

1 Ответ

1 голос
/ 14 декабря 2010

Не думаю, что это связано с переходом с 2008 на 2010 год. Время от времени я получаю это в результате правок, которые приводят в замешательство IDE.

Ответ - удалить оригинал. Причина, по которой добавляется «1», заключается в том, что существует единица без «1». Удаление исходных исправлений, которые.

Если это приводит к ошибкам, вам может потребоваться изменить код конструктора напрямую.

...