MVC 3 Webgrid列

5

我现在正在处理一个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个回答

3

看起来您正在尝试在代码后台中使用Razor语法。尝试使用lambda表达式,例如:

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

快了,是grid.Column(format: (item) => {return new HtmlString("<input type='button' value='Vieww'/>");})。谢谢。 - user415394

3
您可以像这样在Razor中尝试使用<text>标签;
grid.Column(format: @<text><input type='button' value='View'/></text>)   

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接