asp.net Контроль входа в систему: что не так? - PullRequest
1 голос
/ 24 марта 2011

Я работаю над приложением ASP.NET и кодом C # на главной странице. Я хочу получить доступ к элементу управления входом в систему, поэтому у меня есть следующий код:

Login login = new Login();
login = this.Master.FindControl("login") as Login;

Но я получаю исключение "Ссылка на объект не установлена ​​на экземпляр объекта", когда эта строка

login = this.Master.FindControl("login") as Login;

выполнено.

Я не вижу, что может быть не так ...

Спасибо.

Ответы [ 3 ]

1 голос
/ 24 марта 2011

Если я правильно прочитал ваш вопрос, у вас есть главная страница, и вы пытаетесь использовать FindControl, чтобы найти элемент управления с именем login на этой странице.Если это так, то вы должны делать это:

login = this.FindControl("login") as Login; 

, потому что это:

login = this.Master.FindControl("login") as Login; 

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

Другими словами, эта последняя строка кода будет работать, если у вас есть вложенная главная страница - например, Site.Master, а также вложенный дочерний элемент MasterPage с именем Section.Master, ЕСЛИ элемент управления входом находится на сайте.Master и фрагмент кода были в Section.Master.

(Надеюсь, это имело смысл.)

0 голосов
/ 24 марта 2011

Вы должны иметь возможность ссылаться на элемент управления входом напрямую через элемент ID.

В разметке:

<asp:Login runat="server" ID="MainLogin" ....... />

В коде позади:

MainLogin.Visible = false;
0 голосов
/ 24 марта 2011

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

, например

login = this.FindControl("login") as Login;

Причина, по которой это будет работатьпотому что текущая главная страница не встроена в другую главную страницу.Следовательно, вы получите ошибку «объект не установлен» при попытке доступа к главной странице мастера (т. Е. This.Master.FindControl ())

Просто интересно, если это так, есть ли причинапочему вы не можете получить доступ к элементу управления по его имени?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...