asp.net Mvc的一个疑问 如上图所示:上面的那个@Html.DisplayNameFor(model => model.LastName)里面的那个类型推断不应该是IEnumerable<ContosoUniversity.Models.Student>这个类型的吗?为什么可以这么写,mvc框架可以推断出类型为ContosoUniversity.Models.Student请高手解答mvcasp.net框架 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 DisplayNameFor 专门做了取元素类型的声明,你可用把 model 换成 List<T> 试一下,会报错 专门取 IEnumarable<T> 元素类型的重载 没看懂你在说什么,不过你页面定义的类型有问题,IEnumerable是一个迭代集合。 嗯,我也猜是对DisplayNameFor对IEnumerable类型的数据做了特殊的处理,能直接推测出它里面的数据的类型3楼的没明白么?就是问这里DispalyNameFor(a=>a.LastName) a推导出来的类型应该是IEnumarable<Student>,但是实际上呢?这个程序是对的,请说原因,最好是MSDN里面的解释! 这个方法有两个重载:DisplayNameFor<TModel, TValue>(HtmlHelper<IEnumerable<TModel>>, Expression<Func<TModel, TValue>>)DisplayNameFor<TModel, TValue>(HtmlHelper<TModel>, Expression<Func<TModel, TValue>>) 晕,此model非彼model那个model是Lambda的参数。你写成@Html.DisplayNameFor(m => m.LastName)它也能工作——此时你应该看清楚了,这个m和那个model根本不是一回事。 model 这个类型IEnumerable<ContosoUniversity.Models.Student>跟这个类型都可以的ContosoUniversity.Models.Student两个都可以用的 @Html.DisplayNameFor(model => model.LastName) <==>@Html.DisplayName("LastName") 这里model可以随便命名,是lambda表达式,也可以写成@Html.DisplayNameFor(model => Model.LastName) lambda表达式我懂,你那m的类型不一样要推断出来。a b c d e f g 都行 Internet Explorer无法禁用调试 Gridview 绑定问题 读取Excel的时候 Too many fields defined. html问题请教高手 求助提供系统 SiteMapPath问题 gridview 样式问题 分页效率的问题 请问在C#下如何读写一个INI文件,100分送上 给ashx写拦截器遇到的问题,跪求解答 数显显示表示很纠结 treeview控件失去焦点后如何获得选中节点的值?
就是问
这里DispalyNameFor(a=>a.LastName) a推导出来的类型应该是IEnumarable<Student>,
但是实际上呢?
这个程序是对的,请说原因,最好是MSDN里面的解释!
DisplayNameFor<TModel, TValue>(HtmlHelper<IEnumerable<TModel>>, Expression<Func<TModel, TValue>>)
DisplayNameFor<TModel, TValue>(HtmlHelper<TModel>, Expression<Func<TModel, TValue>>)
那个model是Lambda的参数。你写成
@Html.DisplayNameFor(m => m.LastName)
它也能工作——此时你应该看清楚了,这个m和那个model根本不是一回事。
跟这个类型都可以的ContosoUniversity.Models.Student
两个都可以用的
<==>
@Html.DisplayName("LastName")
这里model可以随便命名,是lambda表达式,
也可以写成@Html.DisplayNameFor(model => Model.LastName)
lambda表达式我懂,你那m的类型不一样要推断出来。a b c d e f g 都行