如何呈现来自Helper的HtmlTable

时间:2012-11-22 13:41:37

标签: asp.net-mvc asp.net-mvc-3 c#-4.0

我有一个帮助器,它返回一个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;
        }

但我的观点只有:

System.Web.UI.HtmlControls.HtmlTable

我的回复是HtmlTable,如何在视图中渲染?

2 个答案:

答案 0 :(得分:0)

如评论中所述,此答案仅适用于您使用Razor ViewEngine的情况。

问题是Razor引擎不知道如何处理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;
        }

然后,您可以传递数据并使用您的值填充表格。

答案 1 :(得分:0)

View for for包含html输出。使用不同的“helper”(?)方法无法帮助您使代码无法维护。