2009-12-11 3 views
1

Недавно я начал разработку в ASP.NET и, исходя из фона PHP, я посыпал код на страницы aspx, используя <%%> для управления логикой.ASP.NET в обновлении кода Visual Studio 2008

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

Всякий раз, когда я вхожу в представление о дизайне страницы с кодом в файле aspx, как я уже упоминал, и произвольно изменяю все <%%> блокирует -shift- в моем aspx, что кажется случайными пятнами.

Это, очевидно, по-королевски испортит мою логику управления и после повторного повторения всего внутреннего кода 10+ раз (да, я слишком ленив, чтобы просто укусить пулю и переместить ее на код сзади), мне действительно интересно как Visual Studio может сделать такую ​​ошибку?

Это даже касается того, что полностью удаляет некоторые из блоков <%% (что приводит к отсутствию близких фигурных скобок в моем коде).

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

+0

Я не уверен, как его разрешить в VS, но когда мне приходилось кодировать встроенные блоки при предыдущем задании, мы использовали текстовый редактор вместо VS. Это определенно не было идеальным. –

ответ

1

Я считаю, что выяснил проблемы.

Это недействительный HTML-код (закрытые теги или дополнительные теги) вызывает проблемы.

Дизайнер компоновки сделал вручную без проверки синтаксиса.

+0

Когда вы приняли свой собственный ответ, я бы посоветовался с советом Сонни Боя. В моем сознании нет абсолютно никакого вопроса, что вы скорее, чем позже, придете, чтобы сожалеть о решении рассматривать ASP.NET как PHP. Просто нет причин размещать логику на странице ASPX - это плохой дизайн и не учитывает уроки, полученные теми, кто прошел перед вами. –

+0

Да, я полностью согласен. Из этого проекта был извлечен урок! –

5

Лучшая практика для ASP.NET заключается в том, чтобы избежать <%%> блоков как можно больше. Они являются наследием классического ASP.

Если вам нужно поместить значения в элементы управления созданием контента на странице, например <asp:TextBox>, а затем установить значения соответственно в коде.

Дизайн/исходный вид должен быть только для разметки, а не для логики (если вы можете помочь).

+0

+1 хороший ответ. :) – Saar

+0

Я бы отредактировал это, чтобы сказать, что эти блоки следует избегать при использовании ASP.NET WebForms. ASP.NET MVC использует их либерально, и это очень важно для ИМО. –

+1

+1, но с одной оговоркой. Вы не добавляете контент на страницу с помощью , а используете элементы управления ярлыками. Простые элементы <%#VarName%> тоже прекрасны, но текстовые поля должны использоваться только для ввода пользователем, а не для вывода. –

0

Вы пытаетесь заставить код в соглашение, которое Visual Studio хочет исправить? Потому что, если у вас есть такие проблемы с VS, лучше всего позволить VS перестроить код так, как он хочет, и исправить ошибки, которые происходят. Сделайте это, пока код не стабилизируется, и VS больше не хочет его менять.

Тем не менее, VS никогда не должен перестраивать ваш код таким образом, чтобы он менял логику.

+0

Я просто решил прекратить использовать конструктор на полпути через проект, чтобы полностью исключить проблему. Проект построен отлично, сайт отображается отлично, только проблемы были переупорядочиванием кода, когда я что-то менял в представлении «Дизайн». Это полностью отбросило меня, и я был в полной утрате того, как это произошло. –

0

Лучший ответ, который я могу вам дать, это просто не использовать проекционный вид. Вы можете удалить элементы управления из панели инструментов непосредственно в разметку, если это необходимо, и я предпочитаю видеть, как фактический браузер будет отображать страницу в любом случае.

Смежные вопросы