If语句未返回剃刀中的值
本文关键字:剃刀 返回 语句 If | 更新日期: 2023-09-27 18:20:06
我试图使用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>
}
}
它可能没有被输出,因为它只是作为一个语句执行"string.Format(..)"。
你必须明确地告诉Razor引擎输出它
这可以通过将<文本>lt/文本>围绕它,例如
@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)
唯一合乎逻辑的结论是former
的集合为空(Count==0),因此您的枚举不会执行。确定集合为空的原因以进行验证。