ASP.NET MVC 4将模型从视图传递给html帮助器

Ira*_*ili 6 asp.net asp.net-mvc html-helper razor

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

我在IEnumerable上这样做:

帮手:

public static IHtmlString GenerateTable<TModel, TValue>(this HtmlHelper<TModel> inHtml, IEnumerable<TValue> model)
Run Code Online (Sandbox Code Playgroud)

视图:

@Html.GenerateTable(Model)
Run Code Online (Sandbox Code Playgroud)

但是我怎么能把不是IEnumerable的模型传递给帮手呢?

我试过这个:

public static MvcHtmlString MyHelper<TModel>(this HtmlHelper<TModel> html, object obj)
        {}
Run Code Online (Sandbox Code Playgroud)

但当我这样称呼它

@Html.MyHelper(Model)
Run Code Online (Sandbox Code Playgroud)

obj永远 NULL

Dar*_*rov 11

试试这样:

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

并在您的强类型视图中:

@model MyViewModel
@Html.MyHelper()
Run Code Online (Sandbox Code Playgroud)