2011-01-23 78 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>)