使用RenderAction()并回发到子控制器操作

时间:2009-11-25 20:31:26

标签: asp.net-mvc partial-views renderaction

我有父视图,它也使用RenderAction()(返回PartialView)呈现子控制器操作。一个示例是带有登录部分视图的首页(输入:用户名,密码,记住和操作:登录

执行过程

  1. GET for Home/Index - 还显示我的登录控件,其登录指向子控制器User/Login
  2. 用户输入凭据并点击登录
  3. User/Login的POST - 检查凭据并返回 ???
  4. 问题

    如何从子控制器操作User/Login返回父视图?
    我的子控制器的局部视图可以呈现任何页面,所以我不能轻易地返回父控制器动作的结果,如:

    return new HomeController().Index();
    

    那么我应该如何处理我的子控制器动作及其局部视图?

    修改

    我可以使用父路由的其他数据回发到我的子控制器操作,但我也在子控制器操作中填充数据。在我的例子中,我必须显示某人的凭证无效。重定向会丢失这些......

1 个答案:

答案 0 :(得分:2)

不是发布到/ User / Login执行登录,而是追加一个返回URL,所以你最终会得到/ User / Login?returnUrl = / Home / Index(url编码可能会改变一点)

如果在查询字符串中设置了returnUrl,则/ User / Login的操作应该只是将重定向操作返回给returnUrl。

对不起,如果有点不清楚