如何使用asp.net mvc在webgrid中使用if条件

时间:2015-03-13 12:06:30

标签: c# asp.net-mvc asp.net-mvc-4 razor webgrid

我正在尝试根据asp.net mvc中web网格中的条件显示链接。 如果记录超过结束日期,则显示链接,否则不显示。

grid.Column("", format: (item =>
    {
        if (DateTime.Now > item.EndDate)
        {
            Html.ActionLink(
                "File ClAIM",
                "Edit",
                new { id = item.id },
                new { @class = "action-link" });
        }
        return false;
    }))

它在我的所有记录中显示为false。任何帮助都将受到赞赏。

2 个答案:

答案 0 :(得分:2)

您需要使用ternary operator以下方式:

grid.Column("", format: (item => { DateTime.Now > item.EndDate ? Html.ActionLink("File ClAIM", "Edit", new { id = item.id }, new { @class = "action-link" }) : String.Empty }))

答案 1 :(得分:0)

return之前您遗漏了Html.ActionLink(...)。由于return false不在else分支中,因此在任何一种情况下都会执行。我在您的代码段中添加了一些格式。我的观点对你来说可能会更加明显。

顺便说一句,false不是字符串。虽然我不太详细了解webgrid组件,但我对代码编译感到有些惊讶。你也想在else的情况下返回一个字符串。 string.Emptynull" " - 无论你认为合适。