2016-07-01 3 views
0

기술적으로 내가 가지고있는 것은 작동하지만, EXTREMELY입니다.사용자 그룹 구성원을 기준으로 테이블 열을 제거하십시오.

요약하면 데이터 용 데이터베이스를 쿼리하고 사용자 데이터를 포함하는 개체와 쌍을 이루는 뷰 모델을 만듭니다.

public class SearchViewModel 
{ 

    public List<Submission> submissionList { get; set; } 
    public LoggedInUser User 
    { 
     get 
     { 
      return new LoggedInUser(); 
     } 
    } 
} 

public class Submission 
{ 
    //... All the things ... 
} 

LoggedInUser은 여러 가지 광고 속성을 포함 내가 가진 헬퍼 클래스이지만,이 문제에 관해서는 내가 isAdmin라는 부울 값 찾고 :

여기 내 뷰 모델이다. 관리자가 True 인 경우 특정 열을 표시하고 싶습니다.

이것은 내가 면도기/HTML을 통해 수행하는 방법입니다.

isAdmin에 대한 검사를 제거하면 정보가 훨씬 빠르게 표시됩니다. 5 분에서 대략 10 초로 내려갑니다.

자바 스크립트로 구현하면 더 좋은가요?

+1

model-view-controller 태그는 패턴에 대한 질문입니다. ASP.NET-MVC 구현을위한 특정 태그가 있습니다. –

답변

0

SearchViewModel 클래스를 어떻게 인스턴스화합니까? 당신이 직접 할 경우, 당신은 다음과 같이 인스턴스화에 그 값을 isAdmin라는 이름의 특정 속성을 생성하고 설정해야합니다 다음

public class SearchViewModel 
{ 
    public List<Submission> submissionList { get; set; } 
    public bool isAdmin { get; set; } 
} 

와 ..

var user = new LoggedInUser(); 
var viewModel = new SearchViewModel { 
    submissionList = submissionList, //supose you already have this value 
    isAdmin = user.isAdmin 
}; 

귀하의 면도칼이에 수정 될 것입니다 :

<table class="datatable table table-bordered table-condensed"> 
    <thead> 
     <tr> 
      //. . . Column Headers . . . 

      @if(Model.isAdmin) 
      { 
       <th /> 
      } 
     </tr> 
    </thead> 
    <tbody> 
     @foreach (var item in Model.submissionList) 
     {     
      <tr id="@item.ID"> 
       //. . . Column Content . . . 

       @if(Model.isAdmin) 
       { 
        <td> 
         <div id="[email protected]"> 
           <a href="#" onclick="quickApprove(@item.ID)"> 
            <i class="fa fa-check text-success fa-lg" data-toggle="tooltip" data-placement="top" title="Submit for approval!"></i> 
           </a> 
         </div> 
        </td> 
       } 
      </tr> 
     } 
    </tbody> 
</table> 
+0

이것은 실제로 이것을 구현하는 방법입니다. 방금 내 질문을 업데이트 할 기회가 없었습니다. – Johnrad

관련 문제