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>
    }                      
}

If语句未返回剃刀中的值

它可能没有被输出,因为它只是作为一个语句执行"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),因此您的枚举不会执行。确定集合为空的原因以进行验证。