Вопрос

Я создал веб-сайт ASP, и у меня возникли следующие проблемы: -

Я использую в ней главную страницу и определил два заполнителя контента: один в заголовке, один в контенте, и я указал заголовок страницы в самой верхней директиве в директиве @page, но заголовок страницы не отображается.Мне нужно вручную добавить для него тег.

Во-вторых, когда я создаю страницу контента из главной страницы, она создает ее, а когда я ее переименовываю, она не переименовывает ее класс.Он остается _Default, поэтому каждая страница наследует _default.

Самое главноеЯ использую страницу для ввода и просмотра данных в базе данных.Я использовал логическое значение под названием isadmin который я установил в соответствии с учетными данными при загрузке страницы.и я добавил панель, в которой для свойства видимости установлено значение Visible = '<%#IsAdmin %>'.Он работает правильно, когда я запускаю его через среду Visual Studio, но когда я публикую его и запускаю, он не работает, и панель просто появляется и остается там.Почему это происходит?Есть идеи?Спасибо

Проблема с видимостью устранена, поскольку мне пришлось включить аутентификацию Windows на сервере.Ждем ответов на два других вопроса.Спасибо

Это было полезно?

Решение

  1. Попробуйте добавить <head runat=server> на главную страницу.Только тогда ASP.net сможет «увидеть» тег и изменить его.
  2. Не так уж и плохо, что несколько aspx-страниц имеют одинаковые имена классов.ASP.NET 2.0 начал обрабатывать каждую страницу как отдельную единицу компиляции или около того.Страницы не видят друг друга.Существует специальная директива, позволяющая страницам видеть друг друга и создавать их экземпляры или манипулировать ими.Так что это не должно сильно навредить
  3. Может быть, вы неправильно это проверили и заблуждаетесь, что это ДЕЙСТВИТЕЛЬНО работает в Visual Studio???Но в любом случае я бы посоветовал вам перенести свою логику в OnInit, тогда она запускается гораздо раньше.Я думаю, что дерево управления строится до Page.OnLoad.То, что вы делаете, это привязка данных, которая может работать только в том случае, если вызывается DataBind, я не уверен.

Или используйте безопасный способ:Делать IsAdmin свойство, чтобы оно инициализировалось при первом вызове и кэшировало результат в переменной

Другие советы

Что касается вопроса № 2 — добавьте свои страницы контента через «Проект» -> «Добавить новый элемент» и назовите их там соответствующим образом.Таким образом, наименование будет единообразным и правильным во всем.

Что касается №3, какой HTML выводится при запуске с сервера?

Первую проблему можно решить, заполнив заголовочную часть директивы @Page на страницах .aspx.На главной странице этот текст будет отображаться в строке заголовка браузера.

и проблема № 2 должна быть решена путем добавления файлов с помощью опции добавления файлов в Visual Studio.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top