2012-11-22 56 views
1

我有一個幫助程序返回一個htmlTable的視圖。代碼:如何渲染來自助手的HtmlTable

public static HtmlTable Sales(this HtmlHelper helper) 
     { 
      HtmlTable tabela = new HtmlTable(); 
      HtmlTableRow rowHeader = new HtmlTableRow(); 
      HtmlTableCell cellCode = new HtmlTableCell(); 
      HtmlTableCell cellUnd = new HtmlTableCell(); 
      HtmlTableCell cellDescription = new HtmlTableCell(); 
      HtmlTableCell cellQtd = new HtmlTableCell(); 

      tabela.Width = "800px"; 

      cellCode.InnerText = "Código"; 
      cellUnd.InnerText = "Unidade"; 
      cellDescription.InnerText = "Descrição"; 
      cellQtd.InnerText = "QTD"; 


      cellCode.Focus(); 

      rowHeader.Cells.Add(cellCode); 
      rowHeader.Cells.Add(cellUnd); 
      rowHeader.Cells.Add(cellDescription); 
      rowHeader.Cells.Add(cellQtd); 

      tabela.Rows.Add(rowHeader); 

      return tabela; 
     } 

但是,只有我的看法exibe:

System.Web.UI.HtmlControls.HtmlTable 

我的回報是HTMLTABLE,如何在視圖渲染呢?

+1

這取決於你正在使用什麼樣的視圖。如果你使用的是Razor-Viewengine(你會在代碼中使用很多@),那麼你應該返回一個'MvcHtmlString'對象而不是表格Web部件。 您在那裏使用的UI元素似乎是一個aspx UI元素,我沒有經驗:D –

+0

並且通過窗口可以找到我的答案,如果它是WebForms而不是Razor。 –

回答

0

正如評論中所述,只有在使用Razor ViewEngine時,此答案才適用。

的問題是,剃刀引擎不知道該怎麼辦了System.Web.UI.HtmlControls.HtmlTable

你應該嘗試使用普通的HTML標記,如建表:

public static MvcHtmlString Sales(this HtmlHelper helper) 
     { 


      MvcHtmlString tabela = new MvcHtmlString(@" 
<table style=""width: 800px""> 
    <thead> 
     <tr> 
      <th>Código</th> 
      <th>Unidade</th> 
      <th>Descrição</th> 
      <th>QTD</th> 
     </tr> 
    </thead> 
    <tbody> 
    </tbody> 
</table> 
"); 

      return tabela; 
     } 

然後,您可以通過您的數據並填寫您的值。

0

該視圖是爲包含html輸出..使用不同的「幫手」(?)方法不會幫助你讓你的代碼不可維護。