2013-07-04 3 views
0

Моя страница просмотра нравится;Как использовать пользовательский HtmlHelper с IEnumerable страницей?

@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

+0

Я изменил мой вопрос .. – yusuf

ответ

1

Код, который вы показали в вашем вопросе:

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

не соответствует коду, показанного в YSOD:

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

Похоже, в реальной код (который вы нам не показали), вы использовали переменную TestValue. К сожалению, довольно сложно узнать, как/где/того, какой тип объявляется этой переменной, но если это не string, более чем очевидно, что ваш пользовательский помощник не будет работать по той простой причине, что этот помощник ожидает строковый параметр.

+0

Вашего ответа непосредственно не мой ответ, но это помогает мне найти мою решить .. я пытаюсь дать обнуляемое значение .. это проблема .. Еще раз спасибо Дарина Димитрову – yusuf

+1

Ну , Я надеюсь, вы понимаете, что я не могу знать прямой ответ, потому что я не знаю, какой код вы написали, потому что код, который вы указали в своем вопросе, отличается от вашего фактического кода. –

+0

Да да :) Я пытаюсь обобщить свою проблему, потому что обычно вопросы сложны .. – yusuf