首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >@Model和@model之间的区别

@Model和@model之间的区别
EN

Stack Overflow用户
提问于 2013-07-20 02:08:51
回答 2查看 19.4K关注 0票数 14

基本上,我是在做一个测试,它是由一个excpetion引起的。

通过在控制器中使用return View(list_a),我将一个列表传递到我的视图中,在我的视图页面上,代码如下:

代码语言:javascript
复制
@{
    ViewBag.Title = "KYC_Home";
}
@using UniBlue.Models;
@model UniBlue.Models.KYC
...
@foreach(KYC a in Model)
...

将会有一个例外情况:

代码语言:javascript
复制
CS1579: foreach statement cannot operate on variables of type 'UniBlue.Models.KYC' because 'UniBlue.Models.KYC' does not contain a public definition for 'GetEnumerator'

但是,当我将代码更改为@Model Page时,它看起来很好,但在标题上显示:

代码语言:javascript
复制
System.Collections.Generic.List`1[UniBlue.Models.KYC] UniBlue.Models.KYC

作为常规HTML文本

有人能告诉我为什么会这样吗?我应该怎么做才能去掉奇怪的标题行?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-20 02:16:15

一个用于声明模型的强类型,另一个用于访问模型本身。

下面说明用于该模型的强类型是UniBlue.Models.KYC

代码语言:javascript
复制
@model UniBlue.Models.KYC

这基本上将“变量”Model声明为该类型。它类似于执行以下操作:

代码语言:javascript
复制
UniBlue.Models.KYC Model;

Model是一个变量,@model是一个关键字,说明Model将是什么类型。

您的错误是因为您已将Model声明为KYC,但KYC不可枚举。您在期望IEnumerable<UniBlue.Models.KYC>foreach中使用它,但事实并非如此。

如果你的模型真的是一个列表,那么使用

代码语言:javascript
复制
@model IEnumerable<UniBlue.Models.KYC>
票数 27
EN

Stack Overflow用户

发布于 2013-07-20 02:14:37

@model表示您称为@Model的变量的类型

代码语言:javascript
复制
@model string

@Model.ToUpper(); // works as @Model is of type string
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17752749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档