Я пытаюсь получить доступ к ModelMetaData для пользовательского HtmlHelper, над которым я работаю.HtmlHelper имеет такую подпись ...
public static MvcHtmlString DataGrid<T>(this HtmlHelper<T> htmlHelper){}
Представление (Razor) выглядит следующим образом ...
@model IEnumerable<LogMyAssets.Models.ContactModel>
....
@Html.DataGrid()
Моя проблема в том, что я не могу получить доступ к ModelMetaDataдля модели, как это IEnumerable.Я думал, что мог бы сделать следующее:
var model = (IEnumerable<T>)htmlHelper.ViewData.Model;
var metaData = model.ElementAt(0).GetMetadata();
public static ModelMetadata GetMetadata<TModel>(this TModel model)
{
return ModelMetadataProviders.Current.GetMetadataForType(null, typeof(TModel));
}
Но, как ни странно, я получаю следующую ошибку:
Unable to cast object of type 'System.Collections.Generic.List`1[LMA.Models.ContactModel]'
to type 'System.Collections.Generic.IEnumerable`1[System.Collections.Generic.IEnumerable`1
Я, хотя я мог бы преобразовать из Универсального списка в Универсальный IEnumerable.Я что-то упустил?