0

我试图在 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>
    }                      
}
4

2 回答 2

0

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

于 2013-06-26T22:22:55.847 回答
0

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

您必须明确告诉 Razor 引擎输出它。

这可以通过将<text></text>放在它周围来完成,例如

@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)
于 2013-06-27T01:46:52.847 回答