c# - 显示数据并在 View 上创建新数据(使用数据库 Entity Framework 中的代码优先)

标签 c# asp.net-mvc entity-framework

<分区>

请大家帮帮我!

我首先使用数据库中的代码,这是 Dbcontext:

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

    public virtual DbSet<Agency> Agencies { get; set; }
    public virtual DbSet<Banner_Gallery> Banner_Gallery { get; set; }
    public virtual DbSet<Bill> Bills { get; set; }
    public virtual DbSet<City> Cities { get; set; }
    public virtual DbSet<Customer> Customers { get; set; }
    public virtual DbSet<Drink> Drinks { get; set; }
    public virtual DbSet<Drinks_Category> Drinks_Category { get; set; }
    public virtual DbSet<News> News { get; set; }
    public virtual DbSet<News_category> News_category { get; set; }
    public virtual DbSet<Position> Positions { get; set; }
    public virtual DbSet<Sale> Sales { get; set; }
    public virtual DbSet<Size> Sizes { get; set; }
    public virtual DbSet<Staff> Staffs { get; set; }
    public virtual DbSet<Status_bill> Status_bill { get; set; }
    public virtual DbSet<sysdiagram> sysdiagrams { get; set; }
    public virtual DbSet<Details_Bill> Details_Bill { get; set; }
    public virtual DbSet<Drinks_Size> Drinks_Size { get; set; }

    vv.vvv.......

在我看来:

@model Tuple<WebApplication3.Models.Framework.Drink, WebApplication3.Models.Framework.BBDbModel>

模型项目 1 用于为“drinks”表创建新数据。 模型项 2 用于在下拉列表中显示数据。

要创建新饮料,我需要为其选择类别。

现在,我不知道如何在下拉列表中显示数据。

我确定 BBDbModel.Drinks_Category.ToList() 是数据库中正确的数据列表, 我在Windowform中的Datagridview上试了一下

最佳答案

在您看来它应该是这样的:

@Html.DropDownListFor(m => m.Drinks, 
                    ViewBag.Drinks, 
                    "Select a drink")

其中 Drinks 是 SelectListItem 的列表,应该像这样构建:

ViewBag.Drinks = new SelectList(
    new List<SelectListItem>
    {
        new SelectListItem { Selected = true, Text = "Drink1", Value = "1"},
        new SelectListItem { Selected = false, Text = "Drink2", Value = "2"},
        new SelectListItem { Selected = false, Text = "Drink3", Value = "3"},
    }, "Value" , "Text");

这只是一个例子。还有其他方法可以实现这一点。


因为你已经准备好了一个字符串列表,你可以像这样使用它:

@{ 
    var Drinks = new SelectList(BBDbModel.Drinks_Category.ToList()
                    .Select(m => new SelectListItem { Value = m, Text = m }));
}

@Html.DropDownListFor(m => m.Drinks, 
                        Drinks, 
                        "Select a drink");

我在这里使用了一个Viewbag。您可以在您的模型中包含此 selectlistitem 并避免这种情况。

希望这对您有所帮助。

关于c# - 显示数据并在 View 上创建新数据(使用数据库 Entity Framework 中的代码优先),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42876557/

相关文章:

asp.net - 类库项目中的 MVC 5 工具支持

.net - 转换为 .NET 4.5 后,TableAttribute 在命名空间 System.ComponentModel.DataAnnotations.Schema 中不明确

.net - Entity Framework EDMX 复制到输出目录

c# - 无法使用 [FromQuery] ASP Net Core 2 API 绑定(bind)参数

C#:将单个自定义类数据绑定(bind)到表单控件(复选框?)

c# - null 条件运算符不适用于可空类型?

c# - 带有 SqlServerCe.3.5 的 Entity Framework - 连接异常

c# - 使用 Fluent nHibernate 生成多个模式

.net - 良好的工作流程基础示例

c# - LINQ to Entities 无法识别方法 'Boolean Contains(Int32)' 方法