加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – @Model和@model之间的区别

发布时间:2020-12-16 00:19:29 所属栏目:asp.Net 来源:网络整理
导读:基本上我正在做一个由一个激动引起的测试. 通过在控制器中使用return View(list_a)我将一个列表传递到我的视图中,在我的View页面上,代码如下: @{ ViewBag.Title = "KYC_Home";}@using UniBlue.Models;@model UniBlue.Models.KYC...@foreach(KYC a in Model)
基本上我正在做一个由一个激动引起的测试.

通过在控制器中使用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>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读