C# 在asp.net mvc4应用程序中向HtmlHelper添加扩展方法
我想为html助手添加一个扩展方法来自定义表,我添加了以下方法:C# 在asp.net mvc4应用程序中向HtmlHelper添加扩展方法,c#,asp.net,asp.net-mvc,asp.net-mvc-4,razor,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 4,Razor,我想为html助手添加一个扩展方法来自定义表,我添加了以下方法: public static class HtmlElements { public static string Table(this HtmlHelper ht, string classe) { var table = new HtmlTable(); table.Attributes.Add("class", classe);
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>
}
}
}
使用(var table=@Html.table(“table_数据”)){
描述
客户
客户地位
埃塔德试验
对于(int i=Model[2]-5;i
您的方法返回一个字符串
,当您在C#中使用using
时,这意味着您正在初始化一个实现了IDisposable
的对象,而字符串
没有
您也没有对字符串执行任何操作。如果您打算构建一个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")){
}
在括号内,您现在可以访问变量
表
您的方法返回一个字符串
,当您在C#中使用时,这意味着您正在初始化一个实现IDisposable
的对象,而字符串
没有
您也没有对字符串执行任何操作。如果您打算构建一个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")){
}
在括号内,您现在可以访问变量表
如果您为htmlhelper(而不是html表)添加扩展方法,还可以查看有关为什么要使用的更多信息?您可以将创建html移动到帮助器,并返回带有生成html的字符串,而无需对象。您可以为htmlhelper(而不是html表)添加扩展方法,还可以查看有关为什么要使用的更多信息?您可以将创建html移动到您的帮助程序,并返回带有生成html的字符串,而不使用ObjectThank@Roy,但它不起作用,因为:生成的html不包含表,css类也没有添加到table@Lamloumi:上面的代码没有生成HTML,您仍然需要在{
和}之间添加代码
括号用于处理表
变量。@Lamloumi:您不在任何地方使用表
变量,因此它当然不会生成
标记。此外,您问题中的代码不可能是完整的视图
代码——Razor将无法以这种方式解析它。这里有一篇关于MVC4中Razor的文章:谢谢@Roy,但它不起作用,因为:生成的html不包含表,css类也没有添加到table@Lamloumi:上面的代码没有生成HTML,您仍然需要在{
和}之间添加代码
括号用于处理表
变量。@Lamloumi:您不在任何地方使用表
变量,因此它当然不会生成
标记。此外,您问题中的代码不可能是完整的视图
代码——Razor将无法以这种方式解析它。下面是一篇关于MVC4中Razor的文章: