如何在剃刀视图中使用数据库视图?

时间:2018-07-24 14:39:18

标签: c# asp.net-mvc linq

我有以下代码,但是我无法自动填写select的选项:

controller.cs

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

modelCountriesList.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;

    namespace MySite.Models
    {
        public class CountrisList
        {
            public IEnumerable<Countries> Countries { get; set; }
        }
    }

MySite.Context.cs

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; }
        ...
        }
    }

_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>
}

我只想迭代我的SQL表的所有行:

My sql table

Site.edmx

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

或查找其他类型的路径,例如直接在视图中使用LINQ,谢谢

1 个答案:

答案 0 :(得分:1)

尝试在Razor视图中访问<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.min.js"></script> <div id="app"> <!-- Foo has no <slot> in its template --> <foo>Foo</foo> <!-- Bar does though --> <bar>Bar</bar> </div>对象的Countries属性的过程中会出现错误。

相反,由于您的Razor视图将其模型定义为List<Countries>,因此在控制器操作中实例化视图模型并将其传递给PartialView()

MySite.Models.CountrisList