C# 如何在razor视图中使用数据库视图?
我有以下代码,但我无法自动填充选择的选项: 控制器.csC# 如何在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);
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上