第一个问题 
var dinners = dinnerdb.FindUpComingDinners().ToList();
            ViewData["name"] = dinners;
            ViewData["title"] = dinners[0].Title;
            return View("index",dinners);
当我把 第一行变成 var dinners = dinnerdb.FindUpComingDinners().ToList().Take(1); 我take一下以后 第三行报错
这是为什么
当我把 第三行换成ViewData["title"] = dinners.First().Title; 就可以运行了
当我把第一行 换成var dinners = dinnerdb.FindUpComingDinners(); 不管我怎么运行 都报错 这是为什么啊
第二个问题 
int s = dinners.Count<Dinners>();
当我在上面 添加这行代码 也会编译通过 等同于 int s = dinners.Count(); 
但是 int s = dinners.Count<String>(); 这样写就会报错 这是为什么 这个<>当中的东西代表着上面
 
第三个问题
  <%: Html.LabelFor(model => model.DinnerId) %>
首先我并没用传任何数据  为什么 model => model.DinnerId输出的 是字段的名称

解决方案 »

  1.   

    [code=C#][dinnerdb.FindUpComingDinners()./code]返回的是IQueryable<Dinners> 类型
      

  2.   

    Dinners应该是个实体吧?1. Take方法返回的是一个对象,返回的是Dinners实体
    第三行 dinners[0] 这个是当List来用 肯定会报错
    2. dinners是个List?Count()就行 或者 Count<Dinners>() <这里放的是List中对象的类型>
    3. Html.LabelFor()方法 这个是绑定Model中对应字段的Display属性,如果没有,则返回字段名称,
    你的Dinners Model中正常的情况下应该是类似于这样的public class Dinners
    {
        [Display("Dinner编号")]
        public int DinnerId{get;set;}
    }
      

  3.   

    Html.TextBoxFor() 才是显示你model绑定的值
      

  4.   

    滥用var的结果,使用var你自己都搞不清楚目前变量具体是什么类型,c#是强类型的语言,只要在可能的情况下,都应该明确指明变量类型。