MVC 5无法从帐户控制器登录操作

时间:2016-12-19 21:19:44

标签: c# asp.net-mvc-5

如何在帐户控制器的“登录”操作中调用以下内容?

    return View("~/Views/Shared/MyView.cshtml");

当我这样做时,我才回到" /帐户/登录"而不是去" MyView"。

我的登录操作调用外部Web服务以查看用户是否有效(我的应用程序不保存登录数据。另一个应用程序持有它)。如果外部Web服务验证用户的用户名和密码,它将返回该用户的配置文件对象。我想将该用户个人资料对象传递给我的下一个应用视图。我使用RedirectToAction,但我没有看到通过它传递配置文件数据的方法。我想,如果我把它分享,我可以直接回复我的下一个视图。我可以将模型传递给那个。

我是否认为这是错误的方式?

更新

我在评论中建议我真正想要的是RedirectToAction()。但是我读到的内容表明这也行不通。

我真正关注的是从我的下一个应用程序视图(用户身份验证之后)访问的类型化复杂对象数据。 "复"这是关键词。用户身份验证后我得到的是包含大量列表(不仅仅是简单属性)的配置文件对象。根据我正在阅读的内容,将这些嵌套列表数据从控制器传递到视图只是没有内置到MVC框架中。它不是一个预期的用途。控制器需要哪些视图是一组简单的属性。以下是对类似帖子的回复引用:

" RedirectToAction()方法在内部通过使用模型中每个属性的.ToString()值来构建RouteValueDictionary。但是,绑定仅在模型中的所有属性都是简单属性时才有效,如果任何属性是复杂对象或集合则失败,因为该方法不使用递归。"

我以为我在上面的断言中犯了错误。对于这种情况来说,这是一项过于复杂的技术。我只是遗漏了一些明显的东西。有人能告诉我如何完成我在这之后所做的事情吗?

1 个答案:

答案 0 :(得分:0)

如果可能,请使用将模型放在同一控制器上的重载。

但如果它是完全不同的控制器,你可以在这篇文章中尝试以下建议,例如使用 TempData

How do I include a model with a RedirectToAction?