【问题标题】:The name 'model' does not exist in the current context in ASP.NET CoreASP.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

标签: asp.net .net asp.net-mvc razor asp.net-core


【解决方案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
    }
    

    【讨论】:

      猜你喜欢
      • 2021-10-04
      • 1970-01-01
      • 2014-03-30
      • 1970-01-01
      • 2021-01-02
      • 2022-01-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多