我试图在razor中使用linq从数据库中返回一个数值。 当我尝试什么都没有被退回。这是我所做的一个例子。未打印的变量是“grad_year”
@{
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>
}
}
答案 0 :(得分:0)
唯一合乎逻辑的结论是,您的former
集合为空(Count == 0),因此您的枚举不会被执行。确定集合为空以进行验证的原因。
答案 1 :(得分: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)