2014-06-27 119 views
0

我是相当陌生的MVC和数据库的东西。ASP.NET MVC - 根据用户角色获取数据库数据

我需要做的是根据用户的角色检索数据。我可以从下表中获取所有数据,但我只需要显示特定数据。

 
tableId  roleId  data1  data2  data3 
    1   1   some data some data some data 
    2   1   some data some data some data 
    3   1   some data some data some data 
    4   2   some data some data some data 
    5   2   some data some data some data 
    6   3   some data some data some data 

因此,如果用户登录并分配了角色,我将如何从该角色的表中获取数据? 如果我被分配了roleId 1,我应该只能看到表中的数据,其中roleId = 1。

我还在学习,这将是非常棒的帮助。

谢谢!

我的代码:

控制器

private projectEntities db = new projectEntities(); 

    // GET: /Assessment/ 
    public ActionResult Index() 
    { 
     //return View(db.Scales.ToList()); 
     var data = new ModelServices().GetScale(); 
     return View(data); 


    } 

型号

public class ModelServices : IDisposable 
{ 
    private readonly projectEntities entities = new projectEntities(); 
    public IEnumerable GetScale() 
    { 
     return entities.Scales.ToList(); 
    } 
    public void Dispose() 
    { 
     entities.Dispose(); 
    } 
} 

查看:

@model IEnumerable<project.Models.Scale> 
@{ 
WebGrid grid = new WebGrid(Model); 
} 

@grid.GetHtml() 
+0

“我可以从下表中获取所有数据,但我只需要显示特定数据。”怎么样?你在使用SQL查询吗? LINQ?您可以随时使用returnedDataSet.Where(c => c.roleId == 1; – StriplingWarrior

+1

);返回roleId = 1的行,其中returnedDataSet是您检索的“从表中获取数据”。 – shredding

+0

@StriplingWarrior - 使用Linq。 – forwardslashend

回答

0

我想创建一个新的SERV冰方法如下:

public IEnumerable<Scale> GetScalesWithRole(int roleId) 
{ 
    return entities.Scales.Where(s => s.RoleId == roleId).ToList(); 
}