Asp.net mvc 3 列上的Mvc3 webgrid条件语句

Asp.net mvc 3 列上的Mvc3 webgrid条件语句,asp.net-mvc-3,razor,webgrid,Asp.net Mvc 3,Razor,Webgrid,我有一个webgrid,其中我想在我将拥有的列数据上放置一个条件语句 有可能吗?如果有,你能举个例子吗 编辑 只是一个片段 grid.Column("Status","Status",canSort: true) 如果状态值为“正确”,则我希望显示图像而不是文本。如果我正确理解了您的问题,则您希望在视图中添加“如果”语句。比如: @{ var option1 = true; var option2 = false; } @if(option1){ <div id=

我有一个webgrid,其中我想在我将拥有的列数据上放置一个条件语句

有可能吗?如果有,你能举个例子吗

编辑

只是一个片段

grid.Column("Status","Status",canSort: true)

如果状态值为“正确”,则我希望显示图像而不是文本。

如果我正确理解了您的问题,则您希望在视图中添加“如果”语句。比如:

@{
    var option1 = true;
    var option2 = false;
}
@if(option1){
    <div id="grid1">
        @grid.GetHtml(
            tableStyle: "grid",
            headerStyle: "head",
            alternatingRowStyle: "alt",
            columns: grid.Columns(
                grid.Column("firstColumn"),
                grid.Column("secondColumn")
            )
        )
    </div>
} else if (option2) {
    <div id="grid2">
        @grid.GetHtml(
            tableStyle: "grid",
            headerStyle: "head",
            alternatingRowStyle: "alt",
            columns: grid.Columns(
                grid.Column("firstColumn"),
                grid.Column("secondColumn"),
                grid.Column("thirdColumn")
            )
        )
    </div>
} else {
    <div id="grid3">
        No grid
    </div>
}
@{
var option1=真;
var option2=错误;
}
@如果(选项1){
@grid.GetHtml(
表样式:“网格”,
头型:“头”,
alternatingRowStyle:“alt”,
列:grid.columns(
网格栏(“第一栏”),
网格列(“第二列”)
)
)
}否则,如果(选项2){
@grid.GetHtml(
表样式:“网格”,
头型:“头”,
alternatingRowStyle:“alt”,
列:grid.columns(
网格栏(“第一栏”),
网格栏(“第二栏”),
网格列(“第三列”)
)
)
}否则{
无网格
}

在这里检查一个条件,我隐藏我的两列密码和电子邮件地址。通过这样做,我可以防止我的webgrid显示我不想在特定条件下显示的列

var grid = new WebGrid(Model.User)

if(myConditionCanGoInHere) {

@grid.GetHtml(columns: grid.Columns(

grid.Column("Name"),
grid.Column("Password"),
grid.Column("EmailAddress") ))

}
else{

@grid.GetHtml(columns: grid.Columns(

grid.Column("Name")
// Here I have not included Password and EmailAddress columns.

))

}
这是您想要隐藏完整列的时候,但是如果您想要显示该列并只隐藏特定值,那么在这种情况下该怎么办?这也是可以做到的,你可以有一个if-else条件,如下图所示

@grid.GetHtml(
    columns: grid.Columns(
        grid.Column(header: "Edit", format: item => item.CanEdit ? Html.ActionLink("Edit","Edit","Person",new {id = item.PersonId},null) : Html.Raw("uneditable")),

        grid.Column(columnName: "CanEdit", header: "Editable?"),
        grid.Column(columnName: "DisplayName", header: "Display Name"),
        grid.Column(columnName: "Email", header: "Email")
    )
)

一个不那么乏味的代码,一个更容易阅读的代码(仅仅一年半之后)

var columnsToAdd=new List();
///此处根据条件添加您的合作伙伴
@GetHtml(列:columnsToAdd.ToArray())
var columnsToAdd = new List<WebGridColumn>();
///here add yout collumns according to conditions

@grid.GetHtml(columns: columnsToAdd.ToArray())