나는 면도칼 구문을 다음 한MVC 3 모델의 foreach 필터
@{
foreach (var p in Model)
{
<b>@p.Age</b>
}
}
난 단지 모델의 기록을 볼에 foreach 루프를 필터링하려는 경우 p.City = "뉴욕"
무엇 내 구문은 어떻게 생겼을 까?
나는이 권리를 explaing하길 바래.
감사
나는 면도칼 구문을 다음 한MVC 3 모델의 foreach 필터
@{
foreach (var p in Model)
{
<b>@p.Age</b>
}
}
난 단지 모델의 기록을 볼에 foreach 루프를 필터링하려는 경우 p.City = "뉴욕"
무엇 내 구문은 어떻게 생겼을 까?
나는이 권리를 explaing하길 바래.
감사
@foreach (var p in Model.Where(i => i.City == "New York")) {
<b>@p.Age</b>
}
당신은 당신이 당신의보기 나하지 "뉴욕"의 도시가없는 다른 모델 기록을 필요 여부에 따라 컨트롤러 액션이 필터링을 수행하도록 결정할 수 있습니다
.
"Where"와 같은 LINQ (http://msdn.microsoft.com/en-us/library/bb397896.aspx) 확장 메서드를 사용하여 필터를 적용 할 수 있습니다. 또한 외부 "@ {}"가 필요하지 않은 경우 foreach 앞에 "@"를 붙이면 Razor가 의미하는 것을 알아낼 수 있습니다. 다음과 같음 :
@foreach (var p in Model.Where(item => item.City == "New York")) {
<b>@p.Age</b>
}
+1 컨트롤러에서 필터링이 수행 될 수 있음을 지적합니다. 나는 컨트롤러가 이것에 적합한 장소라고 생각한다. 그것은보기에 적합하지 않은 것 같습니다. –
멋진 감사 –
@ Jamie - 나는 그것이 언제나처럼 달려 있다고 생각한다. City에서 볼 때 그룹화를 수행하고있는 경우 일 수 있습니다.이 경우 필터링되지 않은 컬렉션을 통해 보내고보기에서 필터링하는 것이 좋습니다. 또한 컬렉션이'IQueryable'인지 여부를 알지 못하며 필요할 때까지 실행을 연기합니다. –