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”

当前上下文中不存在名称“controlname”

ASP.NET Core 中的 Server.MapPath 等价物是啥?

如何清除 Web 表单中的所有文本框? (当前上下文中不存在名称“form1”)

当前上下文中不存在名称 WebHost

asp.net中当前上下文中部存在ConfigurationManager怎么办