实体框架最佳实践下拉列表绑定

时间:2017-03-20 02:59:08

标签: c# asp.net-mvc entity-framework drop-down-menu html.dropdownlistfor

这将是一个很长的人,所以提前道歉。在ASP.NET MVC应用程序中,我正在编写一个部分控件,它是一个搜索面板。现在这个小组已经

  1. 类选择下拉列表但是使用表而不是列表(表有一个复选框,两列有组头 - classname和no.of学生)
  2. 年度选择作为下拉列表(希望是最简单的)
  3. 带有复选框和组标题的指标列表
  4. 我已经定义了一个View模型如下

    public class SearchControlModel
    {
        public List<Class> Classes {get; set;}
        public List<Year> Years { get; set; }
        public List<Indicator> Indicators { get; set; }
     }
    

    我的实体在哪里:

    public class Class
    {
    
        public int classID { get; set; }
        public Nullable<int> grade { get; set; }
        public string classname { get; set; }
        public virtual ICollection<Student> Students { get; set; }
    }
    
    public class Indicator
    {
        public int IndicatorID { get; set; }
        public string IndicatorDescription { get; set; }
    
        public virtual ICollection<Student> Students { get; set; }
    
    }
    

    我的问题是:

    1. 显示类和指标的正确控件(显示为下拉列表的网格/表格)

    2. 我是直接使用ado.net实体还是通过存储过程?

    3. 如果我使用存储过程,我将不得不定义一个只有存储过程正在处理的特定属性的另一个实体,还是有另一种方式?

    4. 在视图(cshtml文件)上如何使用这些属性与下拉列表或表格绑定,例如类似的东西:

      • @ Html.LabelFor(m =&gt; m.Classes)
      • @ Html.DropDownListFor(m =&gt; m.Classes,new {@class =“form-control”})
    5. 简而言之,最好的方法是什么?

      这是一张澄清的图片

      enter image description here

1 个答案:

答案 0 :(得分:0)

我正在使用bootstrap-multiselect自定义控件,但仍然想知道它是否能够在其中添加细节/相邻列