我有下表bookAssignment
:
ID Group OFFICE name FKOffice FKGroup
---------------------------
1 Test1 X West 1 1
2 Test3 Y North 2 2
3 Test1 Z South 3 1
4 Test1 P South 4 1
此表中大约有3000行,其中ID是唯一的主键。 GROUP和Office具有很多重复价值。
我还有另一个Office和Group表
tblOffice
OfficeID OfficeName
1 X
2 Y
3 Z
4 P
tblGroup
GroupID GroupName
1 Test1
2 Test3
3 Test6
BookAssignment表与tblGroup和tblOffice之间存在关系。 FKOffice和FKGroup是BookAssignment表中的外键。
我有以下模型类:
public partial class bookAssignment_new
{
public int ID { get; set; }
public Nullable<int> Book { get; set; }
public string TechName { get; set; }
public string Office { get; set; }
public IEnumerable<SelectListItem> OfficeList { get; set; }
public IEnumerable<SelectListItem> GroupList { get; set; }
public virtual GroupName GroupName { get; set; }
public virtual OfficeName OfficeName { get; set; }
}
我的GroupName模型如下:
public partial class GroupName
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public GroupName()
{
this.bookAssignment_new = new HashSet<bookAssignment_new>();
}
public int GroupID { get; set; }
public string Groups { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<bookAssignment_new> bookAssignment_new { get; set; }
}
我的OfficeName模型如下:
public partial class OfficeName
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public OfficeName()
{
this.bookAssignment_new = new HashSet<bookAssignment_new>();
}
public int OfficeID { get; set; }
public string Office { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<bookAssignment_new> bookAssignment_new { get; set; }
}
我想在Office和组中填充两个下拉菜单。
下面是我的控制器代码:
public ActionResult Index()
{
return View();
}
如何在我的视图中使“组和办公室”下拉列表并用“组和办公室”下拉值填充它。下面是我的结构:
谢谢。
答案 0 :(得分:1)
这里您犯了两个大错误。
首先,您只是在模型类上创建实例实例,即bookAssignment_new
。您需要填充它。
第二个是您正在对字符串.WHERE()
应用LINQ。更改组和Office以列出以应用任何LINQ。
答案 1 :(得分:0)
首先,不要将OfficeList
和GroupList
放入模型中。而是将其分配给ViewData
。
第二,bookassignment_new
是一个表示单个对象的类。您可能有某种填充这些列表的方法。您可以通过使用Distinct()
函数运行LINQ查询来从该列表中获取值。
所以-您在控制器中的模型不正确。这就是为什么您会遇到错误。首先解决该问题-并修复下拉菜单会容易得多