我有一个使用ASP.NET身份的MVC网站。此站点可用于多个客户数据,每个客户独立于另一个客户,不应共享任何数据。当选择该客户时,每个交易应仅在该客户数据上发生。
但是,登录的用户可以看到所有客户,他们只需在登录时选择要交易的客户。
因此,登录后,他们将从Dropdown中选择他们的客户,然后查看所有客户项目,个人信息以及可为该客户完成的独特事项。
所以例如
var allItems = from a in db.Items where a.CustomerId = customerId select a;
此客户ID可以在登录时获取,就像用户从下拉菜单中选择的那样。但是,如何在整个用户登录会话中坚持此选择?我显然不想将它保存到数据库中,因为它不是一个永久的选择我希望他们退出时选择消失,他们可以自由选择下次登录的另一个客户。
另一个很酷的事情是能够覆盖DbContext中的get方法,只检索与登录时选择的客户ID匹配的项目
public DbSet<Item> ItemsAll { get; set; }
public IQueryable<Item> Items
{
get
{
return ItemsAll.Where(x => x.Customer == myLoggedInCustomerChoice);
}
}
答案 0 :(得分:1)
将值添加到Session变量,并在加载页面时对其进行检查。
答案 1 :(得分:0)
您的选择