繁体   English   中英

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

[英]How can I use a view of my database in a razor view?

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

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表的所有行:

我的SQL表

Site.edmx

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

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

你应该试图访问会得到一个错误Countries一个财产List<Countries>对象在Razor视图。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM