2013-06-26 4 views
0

면도날에 linq를 사용하여 데이터베이스에서 숫자 값을 반환하려고합니다. 아무 것도 반환하지 않을 때. 여기에 내가 한 일의 예가 있습니다. 인쇄없는 변수는문이 면도기에 값을 반환하지 않는 경우

@{ 
    var trust = new trusteeEntities(); 
    var former = (from g in trust.Members 
       where g.status == "Former" 
       orderby g.lname ascending 
       select g); 
    var pos = 0; 
    foreach (var f in former) 
    { 
     <div class="member"> 
      <h6>@f.fname @f.lname @if (f.grad_year != null) { @string.Format("'{0:00}", f.grad_year); } @if (f.deceased == true){@Html.Raw("**")}</h6> 
     </div> 
    }      
} 
+1

'상태'가 '이전'인 데이터베이스에 레코드가 있습니까? 'foreach'에 중단 점을두면 충돌을 일으키고 '이전'에 기록이 있습니까? –

+0

하나의 변수가 인쇄되지 않았다는 사실을 잊어 버렸습니다. grad_year은 어느 것입니까? 다른 모든 것은 인쇄됩니다. @ GrantWinney – Paradigm

+3

그 코드는 아마도 컨트롤러에 속해 있습니다. – James

답변

0

단순히 'string.Format (..)'을 명령문으로 실행하기 때문에 출력되지 않을 수 있습니다.

Razor 엔진에 출력하도록 명시해야합니다.

주위에 <text></text>을 넣으면됩니다.

@if (f.grad_year != null) { <text>@string.Format("'{0:00}", f.grad_year)</text> } 

편집 :

당신은 또한 conditional operator이 할 수있는, 예를 들어,

@(f.grad_year != null ? @string.Format("'{0:00}", f.grad_year) : null) 
0

유일한 논리적 결론 former의 컬렉션이 비어 (== 0 카운트), 따라서 사용자의 열거를 실행하지 않은 것 인 "grad_year"이다. 확인을 위해 콜렉션이 비어있는 이유를 판별하십시오.