【问题标题】:Entity Framework best practices drop-down list binding实体框架最佳实践下拉列表绑定
【发布时间】:2017-03-20 02:59:08
【问题描述】:

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

  1. 课程选择下拉菜单,但使用表格而不是列表(表格有一个复选框,两列带有组标题 - 班级名称和学生人数)
  2. 作为下拉列表的年份选择(希望是最简单的)
  3. 带有复选框和组标题的指标列表

我已经定义了一个视图模型如下

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 => m.Classes)
    • @Html.DropDownListFor(m => m.Classes, new { @class= "form-control" })

简而言之,最好的方法是什么?

这是一张图片来说明

【问题讨论】:

  • 首先,您的视图模型不正确。为了使用DropDownListFor() 创建一个&lt;select&gt; 元素,您的视图模型需要一个绑定到的属性(例如int SelectedYear)和一个SelectList 的属性(IEnumerable&lt;SelectListItem&gt;) - 请参阅this question/answer 以获取典型代码)
  • 其次,DropDownListFor() 方法会创建一个&lt;select&gt; 元素,而不是图像中的复杂下拉菜单,为此您需要创建或找到适合您需要的自定义 jquery 插件.
  • 第三,你的问题太宽泛了(你已经问了其中 4 个)并且基于意见。
  • 我看到 jquery 插件 嗯我有一个剑道许可证你能推荐任何适合我需要的剑道控件吗?好吧,我明白你关于选择属性的观点!谢谢
  • 寻求建议是题外话 :) 你需要自己做研究。

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 2010-09-14
    • 1970-01-01
    • 2014-04-01
    相关资源
    最近更新 更多