MVC 3 Webgrid专栏

时间:2011-01-23 18:42:09

标签: asp.net-mvc webgrid

我正在开发一个MVC 3 webgrid,在我希望有一个按钮的一个列中,我已经在视图中放入以下代码时实现了这一点。

@grid.GetHtml(columns:
            grid.Columns(
            grid.Column("ID", "id", canSort: true),
            grid.Column("Surname", "surname", canSort: true),
            grid.Column("Forenames", "forename", canSort: true),
            grid.Column(format: @<input type="button" value="View"/>)),
            headerStyle: "header",
            alternatingRowStyle: "alt",
            htmlAttributes: new { id = "DataTable" }
            )

但是我希望创建网格服务器端以进行分页,但是当我将下面的代码放在操作中时,我会收到按钮列的错误。

var htmlString = grid.GetHtml(tableStyle: "webGrid",
                                          headerStyle: "header",
                                          alternatingRowStyle: "alt",
                                          htmlAttributes: new { id = "DataTable" },
                                          columns: grid.Columns(
                                                grid.Column("ID", "id", canSort: true),
                                                grid.Column("Surname", "surname", canSort: true),
                                                grid.Column("Forenames", "forename", canSort: true),      
                                                grid.Column(format: @<input type='button' value='View'/>)                                                                          
                                           ));

第一个错误是“逐字说明符后的关键字,标识符或字符串:@”。

我是否在按钮列上使用了错误的格式?

2 个答案:

答案 0 :(得分:3)

您似乎正在尝试在代码隐藏中使用Razor语法。尝试使用lambda表达式...

gridColumn.Format = (item) =>
{
    return new HtmlString("<input type='button' value='View'/>");
}

答案 1 :(得分:2)

你可以试试<text>这样的剃须刀标签;

grid.Column(format: @<text><input type='button' value='View'/></text>)