6

我想将我的 ViewModel(不是 IEnumerable)传递给我的自定义 html 助手

我在 IEnumerable 上做这样的事情:

帮手:

public static IHtmlString GenerateTable<TModel, TValue>(this HtmlHelper<TModel> inHtml, IEnumerable<TValue> model)

看法:

@Html.GenerateTable(Model)

但是我如何将不是 IEnumerable 的模型传递给助手?

我试过这个:

public static MvcHtmlString MyHelper<TModel>(this HtmlHelper<TModel> html, object obj)
        {}

但是当我这样称呼它时

@Html.MyHelper(Model)

obj 总是NULL

4

2 回答 2

11

试试这样:

public static MvcHtmlString MyHelper<TModel>(this HtmlHelper<TModel> htmlHelper)
{
    TModel model = htmlHelper.ViewData.Model;
    // TODO: do something with the model ...
}

在您的强类型视图中:

@model MyViewModel
@Html.MyHelper()
于 2012-09-23T12:58:51.787 回答
2

我已经尝试过你的代码,它工作得很好,如果模型已经被初始化......所以我认为你应该检查@nemesv 的建议,但我会澄清,当你调用视图和将模型传递给它......您需要检查模型并确保它不为空

于 2012-09-23T10:37:58.397 回答