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

时间:2014-05-06 13:05:51

标签: c# asp.net-mvc-3 arguments webgrid

我必须显示Grid列值是“true”然后“Yes”否则“No”。在WebGrid中尝试但在视图GridColumn中误解了我。

//代码:

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

当我尝试在列中使用format:时,它会导致"Invalid arguments"错误。

我哪里错了?

1 个答案:

答案 0 :(得分:1)

一些事情。首先是相当明显的错误信息 - 你知道你需要在最后添加一个命名参数,因为固定参数不能出现在命名参数之后。

其次,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.Column Docs

相关问题