2017-10-30 2 views
0

MVC에 많은 관계가있는 테이블이 있습니다. 테이블 내에는 {SubjectID, UserID, LevelID}이 있습니다. 현재 테이블을 필터링하는 방법은 현재 사용자가 필요합니다. 로그인 한 사용자는 SubjectID, LevelId 만 현재 사용자에게 속한 것으로 볼 수 있습니다. 이 일을하기위한 간단한 아이디어? 응답 감사합니다 감사합니다 ..MVC는 현재 사용자를 기반으로 데이터를 표시합니다

컨트롤러 :

[Authorize(Roles ="Teacher")] 
    public ActionResult Index() 
    { 
     var subjectTeachers = db.SubjectTeachers.Include(s => s.Levels).Include(s => s.Subjects).Include(s => s.Users); 
     return View(subjectTeachers.ToList()); 
    } 

모델 : 당신이 ASP.NET ID를 사용하지 않기 때문에

[Key] 
    public int SubTech { get; set; } 

    public int SubjectID { get; set; } 
    public virtual Subject Subjects { get; set; } 

    public int UserID { get; set; } 
    public virtual User Users { get; set; } 


    public int LevelID { get; set; } 
    public virtual Level Levels { get; set; } 
+0

ASP.NET ID ('AspNetUsers' 테이블 사용)를 사용하고 있습니까? 'var subjectTeachers = db.SubjectTeachers.Where (x => x.Users.Any (n => n.UserID == user_id)) .ToList()'와 같은 것을 사용할 수 있습니다. –

+0

아니요, 빈 템플릿을 사용하고 있습니다. 인증 및 역할 만 있습니다. – Copain

+0

신원을 적용해야합니까? 이 일을 끝내기 위해서? – Copain

답변

0

것은, 당신이 교체 시도 할 수 있습니다 귀하의 전화 번호 :

[Authorize(Roles ="Teacher")] 
public ActionResult Index() 
{ 
    var subjectTeachers = db.SubjectTeachers.Include(s => s.Levels).Include(s => s.Subjects).Include(s => s.Users).Where(u => u.UserID == id); 
    return View(subjectTeachers.ToList()); 
} 

세션이나 컨트롤러를 통해 UserID를 전달해야하며 제대로 작동해야합니다.

+0

아이디를 추가 할 필요가있는가? – Copain

+0

Identity를 구현하기를 원한다면 Identity의 추가는 많은 변화를 일으키기 때문에 적절한 방법은 아닙니다. 나는 지금 그것을 바꾸지 않을 것을 제안 할 것이다. 그래서 당신은 이처럼 접근 할 수 있습니다. 한번 시도하고 말해봐. – inthevortex

+0

Bro. 코드는 반대 방향으로 작동합니다. 교사 1은 다른 교사 데이터를 볼 수 있지만 자신의 데이터 교사 1은 볼 수 없습니다. – Copain