2014-10-30 56 views
0

我想實現的目標與StackOverflow中的登錄工作方式類似。如果您沒有登錄,您仍然可以看到問題,但是如果您嘗試+1請求您登錄的某些問題。當你登錄你的+1時被記住並被添加到問題中。用戶登錄後更新數據庫記錄

這是我的情景:

  1. 爲會員和用戶的搜索選擇一個 - 登錄不需要
  2. 選擇用戶被重定向到一個反饋頁面,用戶可以編寫一個反饋的成員後消息成員
  3. 用戶寫反饋意見,然後點擊保存
  4. 無論用戶是否登錄或不反饋保存
  5. 如果用戶沒有在彈出的登錄將打開用戶將被要求登錄
  6. 反饋用戶登錄後,在步驟4中創建,將與用戶的ID進行更新
  7. 用戶從步驟1
  8. 重定向到搜索頁面

我被困在第6步。我無法弄清楚獲取登錄用戶的Id的最佳方式,然後更新反饋消息。

該代碼表示​​步驟5.它只是將反饋消息發送到控制器並保存。在消息是.done後,我打電話給登錄彈出窗口。返回message.Data包含反饋消息的ID(這只是已經創建),並且我在用戶登錄後需要。

function saveModel(feedbackMessage) { 
     cc.Ajax.jpost(urlSave, { feedbackMessage: feedbackMessage }) 
      .done(function (message, textStatus, jqXHR) { 
       if (message.Status == 2) { // user not logged in 
        openSignInModal(message.Data); 
       } 
      }) 
    } 

該代碼表示​​步驟6.返回data是含有登錄的局部視圖頁。

function openSignInModal(feedbackId) { 
    var url = '/Account/LoginPartial'; 

    $.ajax({ 
     url: url, 
     type: 'get', 
     data: { returnUrl: '/Subscriber/Search', subTitle: feedbackNotSignedIn, modalTitle: '' }, 
     success: function (data, textStatus, jqXHR) { 
      $('#pc_modal_container').html(data); 
      $('#pc_modal').modal('show'); 
     }, 
    }); 
} 

如果然後用戶登錄我想獲得用戶的ID和更新與登錄用戶的ID(類似於我在StackOverflow的開頭所述)的反饋消息。

我的問題是:

  • 我應該在哪裏保持反饋消息ID,我在第4步,所以我可以用它來更新反饋消息得到什麼?

  • 當用戶登錄時,我想更新反饋消息,我該如何處理這個最好?我知道我可以將它存儲在TempData中,但我並沒有真正看到這是最好的選擇,還是它?

  • 我試圖在網上找到例子,但沒有什麼適合這個好。有誰知道任何可以適合這種情況的例子嗎?

感謝

回答

0

試試這個過程。它沒有任何技術細節,但我相信它會成爲你的目標。

  1. 在反饋POST,保持反饋交ID到高速緩存的變量,如PendingFeedBacks
  2. 使這些高速緩存的數據速效只有當前會話,並用低有效期限
  3. 某處,如果用戶是認證,並有任何待決的反饋意見被採納,做到這一點!

我不認爲這應該是最好的解決方案,但它會做的伎倆。

+0

我不確定這是否是最好的做法,但現在我找不到其他更好的方法。 – 2014-10-31 13:58:39

+0

您也可以使用Cookie而不是緩存變量來實現此目標。雖然,他們是餅乾。 – 2014-10-31 16:39:49