我想为html帮助器添加一个扩展方法来自定义表,我添加了这个方法:
public static class HtmlElements
{
public static string Table(this HtmlHelper ht, string classe)
{
var table = new HtmlTable();
table.Attributes.Add("class", classe);
return table.InnerHtml;
}
}
当我想像这样使用它时
@using(@Html.Table("table_data")){
}
我有一个错误,表明我必须将字符串转换为IDisposable类型。
修改
完整视图的代码:
using(var table = @Html.Table("table_data")){
<tr>
<th>Description</th>
<th>Client</th>
<th>Statut du client</th>
<th>Etat de test</th>
<th></th>
</tr>
for (int i = Model[2] - 5; i < Model[2]; i++)
{
if(i < Model[1].Count)
{
<tr style="font-size: 12px; padding:0px; ">
<td>@Model[0][i].PDescription</td>
<td>@Model[0][i].Nom_client</td>
<td>@Model[0][i].Statut_client</td>
<td style="color:red">@Model[1][i]</td>
<td>
@Model[0][i].Statut_client
</td>
</tr>
}
}
}
答案 0 :(得分:3)
您的方法返回string
,当您在C#中使用using
时,这意味着您正在实例化实现IDisposable
的对象,string
不会。{ / p>
你也没有对字符串做任何事情。如果您打算构建一个HtmlTable并对其执行某些操作,则必须修改代码,例如:
public static HtmlTable Table(this HtmlHelper ht, string classe)
{
var table = new HtmlTable();
table.Attributes.Add("class", classe);
return table;
}
然后你必须在你的代码中使用它,如下所示:
@using(var table = @Html.Table("table_data")){
}
在括号内,您现在可以访问变量table
。
答案 1 :(得分:1)
public static class HtmlElements
{
public static HtmlTable Table(this HtmlHelper ht, string classe)
{
var table = new HtmlTable();
table.Attributes.Add("class", classe);
return table;
}
}