如何在IEnumerable页面中使用自定义HtmlHelper?

时间:2013-07-04 12:34:00

标签: asp.net-mvc html-helper

我的观看页面就像这样;

@model IEnumerable<Project.ViewModels.ViewModel>
@using Helpers

@foreach (var item in Model)
{
    @Html.MyCustomHtmlHelper("test")
}

我的自定义HtmlHelper就像这样;

public static MvcHtmlString MyCustomHtmlHelper(this HtmlHelper helper, string TestValue)
{
    var builder = new StringBuilder();
    builder.Append(TestValue);

    return MvcHtmlString.Create(builder.ToString());
}

适用于@model Project.ViewModels.ViewModel但不适用@model IEnumerable<Project.ViewModels.ViewModel>

我的错误;

enter image description here

1 个答案:

答案 0 :(得分:1)

您在问题中显示的代码:

@foreach (var item in Model)
{
    @Html.MyCustomHtmlHelper("test")
}

与YSOD中显示的代码不对应:

<td>
    @Html.MyCustomHtmlHelper(TestValue)
</td>

在您的真实代码中(您尚未向我们展示),您使用了一些TestValue变量。不幸的是,很难知道这个变量声明的类型/位置/是什么类型,但如果它不是string,那么你的自定义帮助器不能正常工作,原因很简单,因为这个帮助器需要一个字符串参数。