asp.net mvc show list vies based in logged user

时间:2016-05-17 11:29:49

标签: asp.net-mvc-5

您将会感谢您分享您的经验,了解如何根据已记录的用户显示正在过滤的数据列表视图。  问候 Arun Sahani,加德满都

1 个答案:

答案 0 :(得分:0)

这实际上取决于您用来过滤数据的凭据。但是,您需要在模型中添加要检索列表的字段。例如:

public class Product
{
    [Key]
    [Required]        
    [Display(Name = "Product ID")]
    public int productID { get; set; }
    [Required]
    [Display(Name = "Product Name")]
    public string productName { get; set; }
    [Required]
    [Display(Name = "Product Price(RM)")]
    public double productPrice { get; set; }
    [Required]
    public string productAddedBy{ get; set; }
}

注意" productAddedBy' Product表中的列,因为您需要在创建产品时分配id或name的已登录用户的值:

BY ID

//Initialise product instance
Product p = new Product();
p.productAddedBy= User.Identity.GetUserId();

BY姓名

//Initialise product instance
Product p = new Product();
p.productAddedBy= User.Identity.GetUserName();

将产品保存到数据库后,您可以执行LINQ查询以从DbSet过滤数据并将结果传递给视图。当然,您需要初始化db上下文类的实例,并且用户必须登录。

List<Product> productList = new List<Product>();
productList = 'your_db_context_instance'.Product.Where(x=> x.productAddedBy == User.Identity.GetUserId());
return View(productList);

以上代码将根据已登录用户的ID获取用户添加的所有产品。最后一件事是通过产品列表&#39;对于一个强烈的类型视图,你很高兴。