【问题标题】:asp.net mvc: pass information between 2 controllers to the viewasp.net mvc:将 2 个控制器之间的信息传递给视图
【发布时间】:2010-01-08 09:43:23
【问题描述】:

希望我能解释一下自己... 我在母版页中有一个登录控件。当您单击登录按钮时,您将转到帐户控制器的登录方法,该方法检查您的凭据。无论是否正常,您都会被重定向到带有redirecttoaction(“home”,“index”)的主页。 但是,如果登录失败,我想向用户显示一条消息。 所以我尝试的是在登录方法(viewdata [“logon”] =“失败”)中设置viewdata,然后检查masterpage是否存在此viewdata,如果存在,则使用一些文本渲染一个跨度。 但据我了解,重定向到操作方法不会保留视图数据。

确保我的登录方法能够以某种方式通知我的母版页视图登录失败的最佳方法是什么?

米歇尔

【问题讨论】:

标签: asp.net-mvc model-view-controller


【解决方案1】:

如果我正确阅读了您的问题,您的问题是您需要在操作中设置一个值,该值需要在 RedirectToAction 之后可用。您需要在 Tempdata 中设置一个键。

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

TempData 在一个重定向后仍然可用。

【讨论】:

  • 是的,没错。但是临时数据存储在会话中,不是吗?应用程序的其余部分在没有 sessionstate 的情况下工作,我认为我不能为这个引入 sessionstate...
【解决方案2】:

查看MvcContribQueen3 某处提到他们可以治愈这个
(在重定向之间传递信息)。

但最好为身份验证创建单独的视图。然后问题就会消失。

【讨论】:

  • 嗯,不过很好。也许是一个 ajax 表单,然后我没有回发和一个单独的视图。
  • 嗯,有道理,认为我会在成功时执行重定向操作,并在失败时返回视图(“”)。在后一种情况下,视图数据将被保留
猜你喜欢
  • 1970-01-01
  • 2011-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多