如何使用mymodel对象检索下拉列表

时间:2016-04-20 19:28:22

标签: asp.net-mvc

如何使用mymodel对象在视图下拉列表中进行检索

    List<object> mymodel = new List<object>();

        mymodel.Add(db.Events.ToList());
        mymodel.Add(db.Purposes.ToList());
        return View(mymodel);

1 个答案:

答案 0 :(得分:0)

我建议您为自己的观点创建一个模型,并在途中实施其他一些最佳实践。解决方案的各个方面如下所示:

  1. 模型文件夹中为视图创建模型,如下所示:

    public class MyViewModelClass
    {
        public IEnumerable<SelectListItem> Events { get; set; }
    
        public IEnumerable<SelectListItem> Purposes { get; set; }
    }
    
  2. 控制器中,填充视图的模型并将其返回到视图,如下所示。请注意,您应该为下拉列表选择两个属性。 “值”将在与下拉列表中的每个项目相关联的场景值之后,“文本”将显示给最终用户。另请注意,我正在返回SelectListItem,然后我可以使用下拉列表进行绑定。

    MyViewModelClass mymodel = new MyViewModelClass();
    
    mymodel.Events = db.Events.ToList().Select(x =>
                        new SelectListItem
                        {
                            Value = x.EventID.ToString(),
                            Text = x.EventName
                        });
    mymodel.Purposes = db.Purposes.ToList().Select(x =>
                        new SelectListItem
                        {
                            Value = x.PurposeID.ToString(),
                            Text = x.PurposeName
                        });
    
    return View(mymodel);
    
  3. 现在是最后一部分,您的查看。你需要在这里实现三件事:

    • 告知视图预期的模型类型。
    • 创建HTML表单
    • 生成下拉列表
  4. 完整视图如下所示:事件下拉列表:

        @model MyViewModelClass
    
        @{
            ViewBag.Title = "Home Page";
        }
    
        <div>
        @using (Html.BeginForm())
        {
                    @Html.DropDownListFor(m=>m.Events,Model.Events,"--select--")
        }
        </div>