基本上我正在做一个由一个激动引起的测试.
通过在控制器中使用return View(list_a)我将一个列表传递到我的视图中,在我的View页面上,代码如下:
@{ ViewBag.Title = "KYC_Home"; } @using UniBlue.Models; @model UniBlue.Models.KYC ... @foreach(KYC a in Model) ...
会有一个例外说:
CS1579: foreach statement cannot operate on variables of type 'UniBlue.Models.KYC' because 'UniBlue.Models.KYC' does not contain a public definition for 'GetEnumerator'
但是,当我改变我的代码
@模型
页面看起来不错,但在标题上显示:
System.Collections.Generic.List`1[UniBlue.Models.KYC] UniBlue.Models.KYC
作为常规HTML文本
解决方法
一个用于声明模型的强类型,另一个用于访问模型本身.
以下说明用于模型的强类型是UniBlue.Models.KYC.
@model UniBlue.Models.KYC
这基本上将’变量’模型声明为该类型.它类似于执行以下操作:
UniBlue.Models.KYC Model;
Model是一个变量,@ model是一个关键字,说明Model将是什么类型.
您的错误是因为您已将Model声明为KYC,但KYC不可枚举.你是在期待IEnumerable< UniBlue.Models.KYC>的foreach中使用它的.事实并非如此.
如果您的模型确实是一个列表,那么请使用
@model IEnumerable<UniBlue.Models.KYC>