2010-02-19 4 views
0

스파크보기 엔진에서 viewdata 구조를 사용하는 방법에 대한 이해를 얻지 못하는 것 같습니다.불꽃보기 엔진 및 viewdata 혼란을 사용하여

 // Retrieve the project list from the database 
     var projects = from p in _context.Repository<project>() 
         orderby p.name ascending 
         select p; 

     return View(projects.ToList<project>()); 

내가 올바른 프로젝트를 반환 단위 테스트를 가지고이 코드가 작동하고, 내 비 스파크 뷰가 완벽하게 작동 : 내 컨트롤러에 다음과 같은 코드가 있습니다. 이제 Spark View Engine으로 전환하려고하는데 구문에 혼란 스러울뿐입니다. 참고로 스파크 뷰 엔진이 작동하고 있으며 .spark 뷰를 읽음을 확인했습니다. 여기

내가 내 list.spark보기에서 사용하고 무엇을 :

<h2>Available Projects</h2> 
<viewdata model="IList[[project]]"/> 
Count: ${model.count} 

다음과 같은 오류가 발생이보기 렌더링 :

.../List.Spark(3,16): error CS0103: The name 'model' does not exist in the current context 

이것은 model.count 라인에 참조됩니다. 왜이 기능이 작동하지 않습니까? 나는 프로젝트 목록을 ViewData [ "projects"]에 넘겨 봤는데 (spark 코드의 프로젝트를 프로젝트로 대체했습니다) 동일한 오류가 발생했습니다 (projects.count의 model.count를 가져옴).

이것은 아마도 어리석은 일이지만,이 사실을 알 수없는 것 같습니다.

는 업데이트 :

이 잘 나는이 문제를 해결했습니다. VS 2010 Beta 2에서 만든 MVC2 web.config 파일이 좋지 않은 것 같습니다. VS 2010 RC로 만든 MVC2 web.config 파일을 사용했는데 이제 작동합니다. 감사!

+0

클런 로슈의 대답은 올바른 것으로 보인다. 제안을 시도했지만 여전히 오류가 발생하는 경우 업데이트 된 코드를 게시하여 이유를 알 수 있도록하시기 바랍니다. – Aaronaught

+0

오늘 (오늘의 일정에 따라) 오늘 또는 내일 아침에 업로드 된 코드 사본을 받게됩니다. – KallDrexx

답변

1

난 당신이 원하는 생각 :

<h2>Available Projects</h2> 

<viewdata model="IList[[project]]"/> 
Count: ${ViewData.Model.Count} 

나이 :

<h2>Available Projects</h2> 

<viewdata model="IList[[project]]"/> 
<var model="ViewData.Model" /> 
Count: ${model.Count} 

을 ViewData 요소는 ViewDataDictionary의 항목의 유형을 선언합니다. "model"의 경우 실제로 ViewDataDictionary의 Model 속성 유형을 선언합니다.

이러한 표현식과 형식 이름은 C# 코드이므로 대소 문자를 구분합니다.

EDIT : 구문이 1.0 stable 릴리스로 업데이트되었습니다.

참조 - using view data되는 문서는

+0

작동하지 않습니다. "CS0103 오류 : 여전히 '모델'이름이 현재 컨텍스트에 없습니다."라는 오류 메시지가 나타납니다. 또한, IList 내부의 프로젝트는 소문자로되어 있습니다. linq2sql에 의해 생성 된 소문자로 된 엔티티 클래스 이름이기 때문에 소문자입니다. – KallDrexx

+0

흠. 2010 년 1 월 13 일 v1.0.39935 빌드 날짜를 실행 중입니다. –

+0

v1.0.39970 (2010 년 7 월 2 일에 빌드 됨)을 실행 중입니다. – KallDrexx