2010-01-08 6 views
0

надеюсь, что я могу объяснить себя ... У меня есть элемент управления входами на главной странице. когда вы нажимаете кнопку входа в систему, вы переходите к методу входа в учетную запись, который проверяет ваши учетные данные. независимо от того, хорошо это или нет, вы будете перенаправлены на главную страницу с перенаправлением («home», «index»). , но в случае неудачного входа в систему я хочу показать сообщение пользователю. , так что я попытался установить viewdata в методе входа в систему (viewdata ["logon"] = "failed"), а затем проверить главную страницу, если эта точка просмотра присутствует, и если да, то визуализируйте интервал с некоторым текстом. , но поскольку я понимаю, что viewdata не сохраняется с помощью метода перенаправления к действию.asp.net mvc: передавать информацию между двумя контроллерами на вид

Каков наилучший способ убедиться, что мой метод входа в систему может как-то уведомить мое представление главной страницы о том, что логин не удался?

Michel

+0

Читайте также о TempData Смотрите: http://www.persistall.com/archive/2007/12/22/asp.net-mvc-a-ha-moment-tempdata--flash.aspx []'s –

+0

Посмотрите этот проект, чтобы отправить FlashMessages в ваше приложение http://maff.ailoo.net/2009/06/build-a-flashmessenger-system-in-aspnet-mvc/ Думаю, это может вам помочь! [] –

ответ

3

Если я правильно прочитал ваш вопрос, ваша проблема в том, что вам необходимо установить значение в вашем действии, которое должно быть доступно после RedirectToAction. Вам нужно будет установить ключ в Tempdata.

TempData["MessageToUser"] = "I dont let you in dude!" 

TempData по-прежнему доступен после один редиректа.

+1

yep, это правильно. Но tempdata хранится в сеансе, не так ли? остальное приложение работает без sessionstate, и я не думаю, что мне разрешено вводить sessionstate для этого ... – Michel

+0

Да, вы правы в этом. –

1

Заканчивать MvcContrib. Queen3 где-то упоминалось, что у них есть лекарство от этого
(передача информации между переадресацией).

Но было бы лучше создать отдельный вид для аутентификации. Тогда проблема просто исчезнет.

+0

хм, хорошо. возможно, ajax-форма, тогда у меня нет обратной передачи и отдельного представления. – Michel

+0

AJAX для аутентификации также не является хорошей идеей. –

+0

Хмм, имеет смысл, думаю, что я сделаю redirecttoaction on succes и обратное представление ("") при ошибке. в последнем случае viewdata будет сохранен – Michel

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