命名参数规范必须出现在WebGrid MVC3中所有固定参数之后

本文关键字:参数 之后 MVC3 范必须 WebGrid | 更新日期: 2023-09-27 18:02:11

我必须显示如果网格列值是"真"那么"是"否则"否"。在WebGrid中尝试,但在视图中的GridColumn中抛出错误。

//代码:

  grid.Column("SelectedStatus", header: "Selected Status", Model.SelectedStatus==true ?  Html.Raw("Yes"):  Html.Raw("No"))

当我试图在列中使用format:时,它会抛出我"Invalid arguments"错误。

我错在哪里?

命名参数规范必须出现在WebGrid MVC3中所有固定参数之后

有几点。首先是非常明显的错误消息——你明白你需要在末尾添加一个命名参数,因为固定参数不能出现在命名参数之后。

第二,format参数不是一个字符串,而是一个System.Func<Object, Object>类型,所以你可以用:
grid.Column("SelectedStatus", "Selected Status", m => m.SelectedStatus == true ?  Html.Raw("Yes") : Html.Raw("No"))

你会注意到我也删除了命名的header参数,因为它已经是列表中的第二个参数了,所以它在这里是多余的。

最后,如果Model.SelectedStatusbool(而不是bool?),则不需要== true。你可以简单地写:

m => Html.Raw(m.SelectedStatus ? "Yes" : "No")

WebGrid。列文档