2014-01-10 6 views
5

면도기에서 "합계"를 사용할 수 있으므로보기에 중첩 된 내용을 요약 할 수 있습니다. 즉. 내보기는 다음과 같이이다 :ASP.Net MVC 면도기 면도기 및 개수 기능

@model IEnumerable<cb2.ViewModels.ResultsVM> 
... 
@foreach (var item in Model) { 
<tr> 
    <td> 
     @Html.DisplayFor(modelItem => item.Qualified) 
    </td> 
    ... 
} 

나는 다음과 유사한 화면 하단의 자격을 모두 요약 할 :

@Model.Qualified.Sum() 

하지만 오류 얻을 :

'System.Collections.Generic.IEnumerable<cb2.ViewModels.ResultsVM>' does not contain a definition for 'Qualified'

나는 Qazor에서 단순히 Sum 또는 Count를 모델에 사용하는 것이 쉬울 것이라고 생각 했습니까?

덕분에, 마크

답변

20

난 당신이 원하는 생각 :

@Model.Sum(i => i.Qualified) 

Qualified 모델 내에서 항목의 속성 아니라 모델 자체이다.

+0

을 컬렉션에 직접 Sum를 호출 지정할 수 있습니다 . 대안은 무엇입니까? – nam

+0

잘 작동해야합니다. 문제를 재현하는 기존 코드로 새 질문을하십시오. –

+1

나는 그것을 작동시켰다. 내 ViewModel에서'myViewModel.listOfTableRows = (LINQ query) .ToList()'와 같은 행 목록 인 속성을 사용하고 있습니다. 그리고 저는 그리스트를 반복합니다. 따라서이 경우에는'@ Model.listOfTableRows.Sum (c => c.ColumnName)'과 **'@ Model.Sum (...)'이 아닌 **을 사용해야했습니다. 그러나 당신과 당신의 'musefan' 솔루션은 올바른 방향으로 나를 도왔습니다 (고맙습니다). – nam

4

ModelIEnumerable<cb2.ViewModels.ResultsVM>이고 Qualified에 대한 속성을 포함하지 않지만 컬렉션의 각 항목이 해당 항목임을 기억하십시오. 그래서 당신은 ASP.NET 코어에서는, 즉 Qualified 합계하려는 속성 ... 1.1 'Model.Sum (...)가`아니다 @ 인식

@Model.Sum(x => x.Qualified) 
+0

ASP.NET Core 1.1을 사용하고 있습니다. VS2015 편집기의 Intellisense는 @ Model.Sum (...)을 인식하지 못합니다. 어떻게 해결할 수 있습니까? – nam

+0

위의 내 의견에 설명 된대로 지금 작동 중입니다. – nam