Странная проблема с сайтом asp.net
-
23-08-2019 - |
Вопрос
Я создал веб-сайт ASP, и у меня возникли следующие проблемы: -
Я использую в ней главную страницу и определил два заполнителя контента: один в заголовке, один в контенте, и я указал заголовок страницы в самой верхней директиве в директиве @page, но заголовок страницы не отображается.Мне нужно вручную добавить для него тег.
Во-вторых, когда я создаю страницу контента из главной страницы, она создает ее, а когда я ее переименовываю, она не переименовывает ее класс.Он остается _Default, поэтому каждая страница наследует _default.
Самое главноеЯ использую страницу для ввода и просмотра данных в базе данных.Я использовал логическое значение под названием isadmin
который я установил в соответствии с учетными данными при загрузке страницы.и я добавил панель, в которой для свойства видимости установлено значение Visible = '<%#IsAdmin %>'
.Он работает правильно, когда я запускаю его через среду Visual Studio, но когда я публикую его и запускаю, он не работает, и панель просто появляется и остается там.Почему это происходит?Есть идеи?Спасибо
Проблема с видимостью устранена, поскольку мне пришлось включить аутентификацию Windows на сервере.Ждем ответов на два других вопроса.Спасибо
Решение
- Попробуйте добавить
<head runat=server>
на главную страницу.Только тогда ASP.net сможет «увидеть» тег и изменить его. - Не так уж и плохо, что несколько aspx-страниц имеют одинаковые имена классов.ASP.NET 2.0 начал обрабатывать каждую страницу как отдельную единицу компиляции или около того.Страницы не видят друг друга.Существует специальная директива, позволяющая страницам видеть друг друга и создавать их экземпляры или манипулировать ими.Так что это не должно сильно навредить
- Может быть, вы неправильно это проверили и заблуждаетесь, что это ДЕЙСТВИТЕЛЬНО работает в Visual Studio???Но в любом случае я бы посоветовал вам перенести свою логику в OnInit, тогда она запускается гораздо раньше.Я думаю, что дерево управления строится до Page.OnLoad.То, что вы делаете, это привязка данных, которая может работать только в том случае, если вызывается DataBind, я не уверен.
Или используйте безопасный способ:Делать IsAdmin
свойство, чтобы оно инициализировалось при первом вызове и кэшировало результат в переменной
Другие советы
Что касается вопроса № 2 — добавьте свои страницы контента через «Проект» -> «Добавить новый элемент» и назовите их там соответствующим образом.Таким образом, наименование будет единообразным и правильным во всем.
Что касается №3, какой HTML выводится при запуске с сервера?
Первую проблему можно решить, заполнив заголовочную часть директивы @Page на страницах .aspx.На главной странице этот текст будет отображаться в строке заголовка браузера.
и проблема № 2 должна быть решена путем добавления файлов с помощью опции добавления файлов в Visual Studio.