2011-03-29 4 views
0

통화 중에 읽지 않은 상호 작용이있는 경우 내 "보기"에 전달하고 싶습니다.읽지 않은 항목을 컨트롤러에서보기로 전달

전자 메일과 유사합니다. 전자 메일 그룹 내에 읽지 않은 전자 메일이 있으면 굵게 표시됩니다. 나는 그런 것을하고있다.

나는 저장소를 가지고, 그래서 나는

foreach(item in callRepo.All()) 
{ 
    if (item.Interactions.Count(x=>x.Unread==true)>0) 
    { 
    } 
} 
return View(callRepo.All()); 

호출 많은 상호 작용을 가지고 ...이 일을하고있어, 나는 읽지 않은 상호 작용이있는 경우 내보기에 전달 싶어요.

foreach(item in callRepo.All()) 
{ 
    if (item.Interactions.Count(x=>x.Unread==true)>0){CSSclass="Unreaded"} 
    <tr [email protected]>} 

var에 CSSclass = "읽혀질 수를"내가보기에이 사업을 취급하고 싶지 않은 : 그것은 지금 내보기 작업을 어떻게 이것은


.

내 컨트롤러에서이를 수행 할 수있는 방법이 있습니까?

.

제 질문은 명확합니까? 나쁜 영어에 대해 유감스럽게 생각합니다.

답변

0

얼마나 많은 시간에이 저장소 방법을 호출 할 예정입니까 (지금까지 3 번을 계산 했습니까?).

내가보기 모델을 사용하도록 권장합니다 :

public ActionResult Index() 
{ 
    var items = callRepo.All(); 
    var model = items.Select(item => new MyViewModel 
    { 
     Interactions = item.Interactions, 
     IsRead = item.Interactions.Any(x => x.Unread == true) 
    }); 
    return View(model); 
} 

및보기 : 컨트롤러에서 다음

public class MyViewModel 
{ 
    public bool IsRead { get; set; } 
    public IEnumerable<Interaction> Interactions { get; set; } 
} 

@model IEnumerable<MyViewModel> 
<table> 
    @Html.DisplayForModel() 
</table> 

와 해당 디스플레이 템플릿

( ~/Views/Shared/DisplayTemplates/MyViewModel.cshtml) :

이 코드를 개선하면보기 모델의 IEnumerable<Interaction> 속성을 특정 IEnumerable<InteractionViewModel>으로 바꾼 다음 AutoMapper을 사용하여 모델과보기 모델 간의 매핑을 외부화 할 수 있습니다.

관련 문제