0
我有一個啓用ajax的登錄表單,它使服務器的ajax調用來登錄。如果成功,它將使用用戶名設置Session對象。然後,當它完成時,OnSuccess事件調用一個局部視圖更新,然後顯示用戶名。如何更新登錄信息
這在VS中正常工作。但是,部署時不會。我認爲問題在於會話沒有得到足夠快的更新,以便第二個Ajax調用能夠看到它。如果我進行頁面刷新,那麼用戶名會更新。
有沒有其他方法我應該這樣做?我唯一能想到的就是進行數據庫調用,以查看用戶是否已登錄,而不是依賴於會話對象。
這是局部視圖:
<ul id="LoginLinksPartial">
@{ var customer = (NTC.PropertySearch.Models.Customer)Session["Customer"];}
@if (customer!=null)
{
@customer.DisplayName
@Html.ActionLink("Logout", "Logout", "Account")
}
else
{
<ul>
<a onclick="openLoginWindow()">Login</a>
<a onclick="openRegisterWindow()">Register</a>
</ul>
}
</ul>
客戶端還沒有給你的cookie,你仍然在http請求的同一個實例上,就像你登錄時一樣,I.E客戶端還沒有在它的頭中發送會話。這將在下一個請求,因此刷新工程的原因 – davethecoder
是的,但我使用服務器上的會話對象,所以它似乎應該可用。 –
不可用於客戶端服務器創建會話 - >發送到客戶端 - >客戶端將會話發送到服務器<-->服務器客戶端握手。您的案例服務器創建會話--->發送到客戶端 - >客戶端沒有提出新的請求,所以不會發送頭 - 結果,沒有握手 – davethecoder