MVC 3 Webgrid专栏

use*_*394 5 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" }
            )
Run Code Online (Sandbox Code Playgroud)

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

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'/>)                                                                          
                                           ));
Run Code Online (Sandbox Code Playgroud)

第一个错误是"在逐字说明符后预期的关键字,标识符或字符串:@".

我在按钮列上使用了不正确的格式吗?

小智 3

您似乎正在尝试在代码隐藏中使用 Razor 语法。尝试这样的事情,使用 lambda 表达式......

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