방금 Nuget 패키지 Loop Helper for WebMatrix에 대해 배웠습니다. 불행히도 어떤 문서 또는 프로젝트 사이트도 찾을 수없는 것 같습니다. 누구나이 사이트를 사용하는 방법이나 프로젝트 사이트의 위치에 대한 정보가 있습니까?WebMatrix 용 루프 도우미 사용 자습서
답변
제공된 샘플은 당신이 알아야 할 모든 것을 거의 다룰 것이라고 생각합니다. 루프 추적기는 생각만큼 신비하지 않습니다. 예를 들어,
모든 Loop.OuterLoop
당신이 하나 있다면 부모 루프를 참조하는 일을하고 그것을 추적되는 것 : 도우미 그냥 배열, 목록 및 컬렉션에 대한 액세스를 포장한다 보닛에서
@{
int[] outerThings = new int[] {1,2,3,4};
var innerThings = new[] {"a","b","c", "d"};
foreach (int outerThing in outerThings.Track())
{
<li>@outerThing
@foreach(var innerThing in innerThings.Track())
{
<li>---->@innerThing
@if (Loop.OuterLoop.First)
{
<strong>Start of outer loop (index is: @Loop.OuterLoop.Index)</strong>
}
@if (Loop.OuterLoop.Last)
{
<strong>end of outer loop (index is: @Loop.OuterLoop.Index)</strong>
}
</li>
}
</li>
}
}
점증하는 내부 색인 값을 사용하여 이러한 항목을 통해 앞으로 이동을 추적합니다.
업데이트 :
여기서 가장 바깥 쪽 루프 (outerThings
)를 참조 매우 내부 루프 세 중첩 루프를 사용하는 예이다 :
@{
int[] outerThings = new int[] {1,2,3,4};
var middleThings = new[] { "A", "B", "C", "D" };
var innerThings = new[] { "a", "b", "c", "d" };
foreach (int outerThing in outerThings.Track())
{
<li>@outerThing
@foreach(var middleThing in middleThings.Track())
{
<li>---->@middleThing
@foreach(var innerThing in innerThings.Track())
{
<li>-----+---->@innerThing
@if (Loop.OuterLoop.OuterLoop.First)
{
<strong>
Start of outerThing loop (index is: @Loop.OuterLoop.OuterLoop.Index)
</strong>
}
@if (Loop.OuterLoop.OuterLoop.Last)
{
<strong>
End of outerThing loop (index is: @Loop.OuterLoop.OuterLoop.Index)
</strong>
}
</li>
}
</li>
}
</li>
}
}
3 루프가 있다면 어떻게 될까요? –
@chris - 세 개의 중첩 루프를 사용하는 또 다른 예제를 추가했습니다. 예를 들어 여분의 'OuterLoop'을 추가하여 바로 내부 루프에서 아주 바깥 쪽 루프를 참조하면됩니다. 'Loop.OuterLoop.OuterLoop' – Kev
그런 말로하면, 그 속성이 재미 있지 않았다고 프로그래밍 할 수 있습니다. –
아우터 - 루프를 트래킹 완전히 어렵지 않다. 도우미는 Context.Items에 상태를 저장하여 요청 수준 격리를 보장합니다. 새 루프를 추적 할 때마다 값이 Context.Items에 이미 있는지 확인하고이를 OuterLoop 속성으로 새 루프에 할당합니다. 열거자를 삭제하면 Context.Items의 값이 OuterLoop으로 설정되어 현재 루프가 효과적으로 팝핑됩니다.
foo.Track()
fooWrapper.OuterLoop = Content.Items["Loop"] // null at this point.
Context.Items["Loop"] = fooWrapper
bar.Track()
barWrapper.OuterLoop = Content.Items["Loop"] // fooWrapper
Context.Items["Loop"] = barWrapper
bar.Dispose()
Context.Items["Loop"] = barWrapper.OuterLoop // Current in fooWraper
이것은 당신이 페이지에 걸쳐 포함한 루프의 깊이를 가질 수 있으며 여전히 작동 것을 의미한다.
도우미는 멀티 스레드 시나리오에서는 작동하지 않으며 열거자를 처리하지 않으면 오류가 발생할 수 있습니다.
열거 자 처분에 대해 제기 한 진술에 당황한데, 열거 자 처분을 보여주는 코드 샘플은 없습니다. 또한'Wrap()'은 어디에서 왔습니까? –
@Chris 나의 나쁜, 나는 트랙을 말하려고했지만 대신 랩을 썼다. 나는 내 대답에서 그것을 바꿨다. 또한 IEnumerator
마지막 코드 줄에서 두 번째로 bar.Dispose() 여야합니까? –
- 1. 데스크톱 응용 프로그램에서 WebMatrix 도우미 사용
- 2. webmatrix 및 ASP.NET 웹 도우미 라이브러리 1.1
- 3. WebMatrix cshtml 페이지의 ASP.NET 컨트롤 사용
- 4. Webmatrix (Orchard)와 Webdeploy 사용
- 5. Windows 용 Qt SDK : 도우미 사용 방법
- 6. Webmatrix 도우미 : webimage에서 이미지 파일을 업로드 할 수 없습니다.
- 7. Xcode 용 FrontRow 자습서
- 8. 도우미 컨트롤러 사용
- 9. 자습서 용 Wordpress 데모 페이지
- 10. Mac 용 기계 코드 자습서
- 11. ASP.Net 개발자 용 JSP 자습서
- 12. Android 용 삼각 측량 자습서
- 13. mvc 용 html 도우미 작성
- 14. for 루프 용 쉼표
- 15. 루프 용 JSonArray 최적화
- 16. 오브젝트 용 루프?
- 17. XML 용 fwrite가있는 루프
- 18. Node.js 용 루프 모듈
- 19. VS 2010 단위 테스트 용 자습서
- 20. 사용 with_options 내가이 모양이 도우미
- 21. 문자열을 반환하는 Haml 도우미 사용
- 22. 컨트롤러 내에서 도우미 메서드 사용
- 23. NerdDinner 자습서 - 도우미 메서드에 대한 설명이 누락 되었습니까?
- 24. 액세스 쿼리에서 루프 사용
- 25. 루프 내에서 $ .getJSON 사용
- 26. 라텍스에서 루프 사용
- 27. Jekyll에서 루프 사용 방법
- 28. 루프 조건에서 매크로 사용
- 29. WebMatrix WebSecurity PasswordSalt
- 30. WebMatrix PHP mySQL
FWIW 내가 프로젝트에 추가 한 cshtml 파일을 보았지만'Loop.OuterLoop'에 대해서는 아무 것도 이야기하지 않았습니다 –