首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MVC3-访问IEnumerable模型的ModelMetaData?

MVC3-访问IEnumerable模型的ModelMetaData?
EN

Stack Overflow用户
提问于 2011-03-05 04:05:55
回答 1查看 1.1K关注 0票数 3

我正在尝试访问我正在处理的自定义HtmlHelper的ModelMetaData。HtmlHelper有一个这样的签名...

代码语言:javascript
复制
public static MvcHtmlString DataGrid<T>(this HtmlHelper<T> htmlHelper){}

(剃刀)视图看起来像这样...

代码语言:javascript
复制
@model IEnumerable<LogMyAssets.Models.ContactModel>
....
@Html.DataGrid()

我的问题是我无法访问模型的ModelMetaData,因为它是IEnumerable。我认为我可以做到以下几点:

代码语言:javascript
复制
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));
}

但奇怪的是,我得到了以下错误:

代码语言:javascript
复制
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。我是不是遗漏了什么?

EN

回答 1

Stack Overflow用户

发布于 2011-05-10 20:38:45

我真的不明白T(IEnumerable<T>)中是在哪里定义的,但是我猜T已经是IEnumerable<something>了,这意味着您正试图转换为IEnumerable<IEnumerable<something>>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5198674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档