ASP.NET Core 的当前上下文中不存在名称“模型”
Posted
技术标签:
【中文标题】ASP.NET Core 的当前上下文中不存在名称“模型”【英文标题】:The name 'model' does not exist in the current context in ASP.NET Core 【发布时间】:2017-01-19 07:04:29 【问题描述】:我正在用 Asp.Net Core 编写一些应用程序,但 View 有一些问题。
我的控制器将字典返回到视图:
Dictionary<string, List<MyModel>>
在我看来,我有:
@model System.Collections.Generic.Dictionary<string, List<MyProject.Folder1.MyModel>
当我想通过 foreach 进行迭代时
@foreach (var blog in Model)
//code
我有一个错误:
当前上下文中不存在名称“模型”
你知道出了什么问题吗?
【问题讨论】:
哪一行导致错误? 你的代码看起来完全没问题。 @mason 在“@”foreach 行(模型中的变量博客)。你知道吗,我把我的字典放到另一个类中,例如 MyClass,它运行良好,但我仍然想知道为什么我不能直接在视图页面上使用字典 我有同样的错误,所以它可以,不知何故 从 project.json 升级到 VS17 样式的 csproj 后,这个错误发生在我身上。我的项目正在导入 Microsoft.NET.Sdk 而不是 Microsoft.NET.Sdk.Web 【参考方案1】:不应该是这样的
@foreach (var blog in Model["somekey"] as List<MyModel>)
【讨论】:
【参考方案2】:试试这个:
班级:
public class Class1
public int Id get; set;
public string Name get; set;
控制器:
public ActionResult Index()
Dictionary<string, List<Class1>> myDict = new Dictionary<string, List<Class1>>();
List<Class1> objList = new List<Class1>();
Class1 objClass=new Class1();
objClass.Id=1;
objClass.Name="Sandip";
objList.Add(objClass);
myDict.Add("sandip", objList);
return View(myDict);
查看:
@model Dictionary<string, List<MyMvcApplication.Models.Class1>>
@
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
@foreach (var kvp in Model)
//logic
【讨论】:
以上是关于ASP.NET Core 的当前上下文中不存在名称“模型”的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET Core Web API - 当前上下文中不存在名称“jsonString”
ASP.NET Core 中的 Server.MapPath 等价物是啥?