Lif*_*ipt 11 asp.net-mvc asp.net-mvc-3 asp.net-mvc-4
基本上我正在做一个由一个引发引起的测试.
通过使用return View(list_a)在控制器中我将一个列表传递到我的视图中,在我的视图页面上,代码如下:
@{
ViewBag.Title = "KYC_Home";
}
@using UniBlue.Models;
@model UniBlue.Models.KYC
...
@foreach(KYC a in Model)
...
Run Code Online (Sandbox Code Playgroud)
会有一个例外说:
CS1579: foreach statement cannot operate on variables of type 'UniBlue.Models.KYC' because 'UniBlue.Models.KYC' does not contain a public definition for 'GetEnumerator'
Run Code Online (Sandbox Code Playgroud)
但是,当我将我的代码更改为@Model Page时看起来不错,但在标题上显示:
System.Collections.Generic.List`1[UniBlue.Models.KYC] UniBlue.Models.KYC
Run Code Online (Sandbox Code Playgroud)
作为常规HTML文本
谁能告诉我为什么会这样?我该怎么做才能删除奇怪的标题行?
Mat*_*ser 26
一个用于声明模型的强类型,另一个用于访问模型本身.
以下说明用于模型的强类型UniBlue.Models.KYC.
@model UniBlue.Models.KYC
Run Code Online (Sandbox Code Playgroud)
这基本上将'变量'声明Model为该类型.它类似于执行以下操作:
UniBlue.Models.KYC Model;
Run Code Online (Sandbox Code Playgroud)
Model是一个变量,@model是一个关键字,说明Model将是什么类型.
您的错误是因为您已声明Model为KYC,但KYC不可枚举.你正在使用它而不是foreach预期IEnumerable<UniBlue.Models.KYC>的情况.
如果您的模型确实是一个列表,那么请使用
@model IEnumerable<UniBlue.Models.KYC>
Run Code Online (Sandbox Code Playgroud)
@model表示您引用为@Model的变量的类型
@model string
@Model.ToUpper(); // works as @Model is of type string
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16928 次 |
| 最近记录: |