這似乎是不可能的,但我會問無論如何。 這是場景如何在重定向後更新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