C# If语句未在razor中返回值

C# If语句未在razor中返回值,c#,linq,razor,asp.net-webpages,C#,Linq,Razor,Asp.net Webpages,我试图在razor中使用linq从数据库返回一个数值。 当我尝试时,没有任何东西被返回。这是我所做的一个例子。未打印的变量是“grad_year” @{ var trust=新的信任实体(); var-former=(来自托管中的g.Members 其中g.status==“前” orderby g.lname升序 选择g); var-pos=0; foreach(前一个中的var f) { @f、 fname@f.lname@if(f.grad_year!=null){@string.Form

我试图在razor中使用linq从数据库返回一个数值。 当我尝试时,没有任何东西被返回。这是我所做的一个例子。未打印的变量是“grad_year”

@{
var trust=新的信任实体();
var-former=(来自托管中的g.Members
其中g.status==“前”
orderby g.lname升序
选择g);
var-pos=0;
foreach(前一个中的var f)
{
@f、 fname@f.lname@if(f.grad_year!=null){@string.Format(“{0:00}”,f.grad_year);}@if(f.deaster==true){@Html.Raw(“**”)
}                      
}

唯一合乎逻辑的结论是,
前一个
的集合为空(Count==0),因此不会执行枚举。确定集合为空以进行验证的原因。

它可能没有被输出,因为它只是作为语句执行“string.Format(..”)

你必须明确地告诉剃须刀引擎输出它

这可以通过围绕它来实现,例如

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

我忘了说有一个变量没有打印。哪一年是毕业年。其他的都打印出来了@GrantWinneyBTW该代码可能属于控制器。@James我使用它作为宏脚本这一事实会有所不同吗?这是MVC还是网页v2?该
grad\u year
(因公共示例而命名不好)属性的类型是什么?
@if (f.grad_year != null) { <text>@string.Format("'{0:00}", f.grad_year)</text> }
@(f.grad_year != null ? @string.Format("'{0:00}", f.grad_year) : null)