ASP.NET MVC - 根据用户角色获取数据库数据
Posted
技术标签:
【中文标题】ASP.NET MVC - 根据用户角色获取数据库数据【英文标题】:ASP.NET MVC - Get database data depending user role 【发布时间】:2014-08-19 03:19:29 【问题描述】:我对 MVC 和数据库的东西还很陌生。
我需要做的是根据用户的角色检索数据。我可以从下表中获取所有数据,但我只需要显示特定数据。
tableId roleId data1 data2 data3 1 1 一些数据 一些数据 一些数据 2 1 一些数据 一些数据 一些数据 3 1 一些数据 一些数据 一些数据 4 2 一些数据 一些数据 一些数据 5 2 一些数据 一些数据 一些数据 6 3 一些数据 一些数据 一些数据如果用户登录并分配了一个角色,我将如何从表中获取该角色的数据? 如果我被分配了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()
【问题讨论】:
"我可以从下表中获取所有数据,但我只需要显示特定数据。"如何?您使用的是 SQL 查询吗? LINQ? 你总是可以使用returnedDataSet.Where(c => c.roleId == 1);返回roleId = 1的行,其中returnedDataSet是您检索到的“表中的所有数据”。 @StriplingWarrior - 使用 Linq。 @user3606394:您能否提供代码 sn-p 来展示您如何首先获取该表的数据?这使人们更容易为您提供代码示例来展示如何做您想做的事情。 如果您的视图模型是IEnumerable<project.Models.Scale>
类型,那么为什么您的服务方法只返回IEnumerable
类型?该服务应该返回与您的视图使用的相同的泛型类型。
【参考方案1】:
我会像这样创建一个新的服务方法:
public IEnumerable<Scale> GetScalesWithRole(int roleId)
return entities.Scales.Where(s => s.RoleId == roleId).ToList();
【讨论】:
以上是关于ASP.NET MVC - 根据用户角色获取数据库数据的主要内容,如果未能解决你的问题,请参考以下文章
带有权限代码的 ASP.NET MVC 4 自定义授权属性(无角色)