2014-10-30 62 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