Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在razor视图中使用数据库视图?_C#_Asp.net Mvc_Linq - Fatal编程技术网

C# 如何在razor视图中使用数据库视图?

C# 如何在razor视图中使用数据库视图?,c#,asp.net-mvc,linq,C#,Asp.net Mvc,Linq,我有以下代码,但我无法自动填充选择的选项: 控制器.cs public ActionResult GetPais() { using (MyEntities ctx = new MyEntities()) { var List = ctx.Countries.ToList(); return PartialView("_optionsPais", List);

我有以下代码,但我无法自动填充选择的选项:

控制器.cs

public ActionResult GetPais()
        {    
            using (MyEntities ctx = new MyEntities())
            {
                var List = ctx.Countries.ToList();
                return PartialView("_optionsPais", List);
            }
        }
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;

    namespace MySite.Models
    {
        public class CountrisList
        {
            public IEnumerable<Countries> Countries { get; set; }
        }
    }
namespace MySite.Models
    {
    using System;
    using System.Data.Entity;
    using System.Data.Entity.Infrastructure;

    public partial class MyEntities : DbContext
    {
        public MyEntities()
            : base("name=MyEntities")
        {
        }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            throw new UnintentionalCodeFirstException();
        }
        ...
        public DbSet<Countries> Countries { get; set; }
        ...
        }
    }
modelCountriesList.cs

public ActionResult GetPais()
        {    
            using (MyEntities ctx = new MyEntities())
            {
                var List = ctx.Countries.ToList();
                return PartialView("_optionsPais", List);
            }
        }
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;

    namespace MySite.Models
    {
        public class CountrisList
        {
            public IEnumerable<Countries> Countries { get; set; }
        }
    }
namespace MySite.Models
    {
    using System;
    using System.Data.Entity;
    using System.Data.Entity.Infrastructure;

    public partial class MyEntities : DbContext
    {
        public MyEntities()
            : base("name=MyEntities")
        {
        }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            throw new UnintentionalCodeFirstException();
        }
        ...
        public DbSet<Countries> Countries { get; set; }
        ...
        }
    }
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用System.Web;
名称空间MySite.Models
{
公共类计数列表
{
公共IEnumerable国家{get;set;}
}
}
MySite.Context.cs

public ActionResult GetPais()
        {    
            using (MyEntities ctx = new MyEntities())
            {
                var List = ctx.Countries.ToList();
                return PartialView("_optionsPais", List);
            }
        }
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;

    namespace MySite.Models
    {
        public class CountrisList
        {
            public IEnumerable<Countries> Countries { get; set; }
        }
    }
namespace MySite.Models
    {
    using System;
    using System.Data.Entity;
    using System.Data.Entity.Infrastructure;

    public partial class MyEntities : DbContext
    {
        public MyEntities()
            : base("name=MyEntities")
        {
        }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            throw new UnintentionalCodeFirstException();
        }
        ...
        public DbSet<Countries> Countries { get; set; }
        ...
        }
    }
名称空间MySite.Models
{
使用制度;
使用System.Data.Entity;
使用System.Data.Entity.Infrastructure;
公共部分类MyEntities:DbContext
{
公共慈善机构()
:base(“name=MyEntities”)
{
}
模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder)
{
抛出新代码FirstException();
}
...
公共数据库集国家{get;set;}
...
}
}
\u optionPais.cshtml

@model MySite.Models.CountrisList
@using System.Web.Configuration;
@using System.Globalization;
@using System.Linq;


@foreach (var item in Model.Countries)
{
    <option value="@item.Ide">@item.Descripcion</option>
}
@model MySite.Models.CountrisList
@使用System.Web.Configuration;
@利用制度全球化;
@使用System.Linq;
@foreach(模型国家/地区中的var项目)
{
@项目.说明
}
我只想迭代SQL表中的所有行:

我找不到迭代表中的行的方法,它们可以帮助我


或者在视图中查找另一种类型的路径,如直接使用LINQ,谢谢

在Razor视图中尝试访问
列表
对象的
国家属性时,您应该会遇到错误

相反,在控制器操作中实例化视图模型并将其传递给
PartialView()
,因为Razor视图将其模型定义为
MySite.Models.CountrisList

public ActionResult GetPais()
{    
    using (MyEntities ctx = new MyEntities())
    {
        var model = new MySite.Models.CountrisList();
        model.Countries = ctx.Countries.ToList();
        return PartialView("_optionsPais", model);
    }
}

您的Razor视图模型是
MySite.Models.Countris
,但您为它提供了
List
。在哪里?在我的modelCountriesList.cs上