在视图上显示数据并创建新数据(首先使用数据库实体框架中的代码)

时间:2017-03-18 15:59:48

标签: 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用于为&#34;饮料&#34;创建新数据。表。 模型项2用于在下拉列表中显示数据。

要制作新饮料,我需要为其选择类别。

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

我确信BBDbModel.Drinks_Category.ToList()是来自数据库的正确数据列表, 我在Windowform

中的Datagridview上试了一下

2 个答案:

答案 0 :(得分:2)

这是您在视图中的样子:

@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并避免这种情况。

希望这有帮助。

答案 1 :(得分:0)

我正在尝试这些行,它正在工作LOL;

<div class="form-group">
    @{  
      WebApplication3.Models.Framework.BBDbModel context = new WebApplication3.Models.Framework.BBDbModel();
      var Drinks = new SelectList(context.Drinks_Category.Select(m => new SelectListItem { Value = m.Id_category.ToString(), Text = m.Name_category.ToString() }) "Value" , "Text");
     }
    @Html.DropDownListFor(m => m.Id_category, Drinks, "Select a category drink")
</div>