【问题标题】:ASP.NET MVC - Get database data depending user roleASP.NET MVC - 根据用户角色获取数据库数据
【发布时间】: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&lt;project.Models.Scale&gt; 类型,那么为什么您的服务方法只返回IEnumerable 类型?该服务应该返回与您的视图使用的相同的泛型类型。

标签: c# asp.net-mvc razor


【解决方案1】:

我会像这样创建一个新的服务方法:

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

【讨论】:

    猜你喜欢
    • 2018-11-09
    • 1970-01-01
    • 1970-01-01
    • 2018-07-04
    • 1970-01-01
    • 1970-01-01
    • 2019-06-16
    • 1970-01-01
    • 2014-08-18
    相关资源
    最近更新 更多