2011-01-23 69 views
5

我正在研究一个MVC 3 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'/>)                   
              )); 

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

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

回答

3

它看起来像你试图在代码隐藏中使用Razor语法。尝试这样的事情,使用lambda表达式...

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

近那里,是grid.Column(格式:(项目)=> {返回新HtmlString( “”);})谢谢。 – user415394 2011-02-05 10:12:35

2

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

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