这似乎是不可能的,但我会问无论如何。 这是场景如何在重定向后更新div的内容?
我有一个MVC 3视图加载3个部分视图,一个用于登录,一个用于注册,另一个用于OpenID登录。
然而,前2项与Ajax很好,第三视图使用AJAX张贴到我的OpenID的控制器去哪儿做一些DotNetOpenAuth魔术
例子:
var response = authenticationRequest.RedirectingResponse;
if(response.Status == HttpStatusCode.Redirect)
{
return Json(new {redirectUrl=response.Headers[HttpResponseHeader.Location] });
}
我来自控制器的OpenID登录表单发送到这样做从返回的JSON重定向, “记住这篇文章是通过ajax”。所以在重定向之后,我想用基于重定向到提供程序后发生的事情的新视图替换原始的openid登录部分视图的div内容,用户登录,并在我的actionMethod中获得响应。例如,我将检查我的数据库,看看我是否已经拥有该开放标识的帐户。如果我不想,我想给用户提供一些基本问题的部分视图等,并让他们添加开放的id帐户。
因此,似乎这是不可能的,因为重定向杀死任何获取数据回原始页面的机会。
任何想法?
过程子弹的要求:
- 主视图呈现与表单
- 局部视图内表确实AJAX交到ActionMethod在控制器
- ActionMethod在控制器返回的Json用的局部视图redirectUrl
- OnSuccess回调函数读取json结果并执行客户端重定向到redirectUrl
- 用户以重定向方式登录到openid提供程序位置
- OpenID提供商将结果发送回生成该初始的Json的redirectUrl结果相同ActionMethod
- 上开放的。ID执行DB查询和在如果发现如果用户没有找到返回局部视图或记录用户。
我想有视图id没有找到用户加载到登录表单所在的原始div中。这是行不通的。
也许子弹点这个有点难以阅读和理解这里发生了什么。也许它只是我,但我只是交叉眼睛:) – 2012-01-02 18:21:52
添加项目符号:) – CrazyCoderz 2012-01-02 18:38:33
事实上,我想这个信息在同一页面上很可能不是功能上最好的方法。我只是想知道这样的事情是否可能。 – CrazyCoderz 2012-01-02 18:44:18