我正在尝试使用实体框架6开发ASP.net mvc应用程序。
有{2}个实体Driver
& DriverType
。向数据库添加新驱动程序时,用户应该能够从DropDownList中选择驱动程序类型。
提交表单时,应将所选DriverType的ID添加到DriverTypeID
表中的Driver
(外键)列。
我的问题是如何在加载页面时将所有DriverTypes提取到DropDownList。如何将所选DriverType的ID传递给Driver
表?
我的模型课程如下。
驱动程序类
public partial class Driver
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public Driver()
{
this.trip_tab = new HashSet<Trip>();
}
public string ID { get; set; }
public string DriverTypeID { get; set; }
public string VehicleID { get; set; }
public string Name { get; set; }
public string ContactNo { get; set; }
public string Comment { get; set; }
public virtual DriverType drivertype_tab { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<Trip> trip_tab { get; set; }
}
驱动程序类型
public partial class DriverType
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public DriverType()
{
this.driver_tab = new HashSet<Driver>();
}
public string ID { get; set; }
public string Type { get; set; }
public string Comment { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<Driver> driver_tab { get; set; }
}
}
我使用数据库优先方法。
答案 0 :(得分:0)
您可以在操作中创建一个selectList,并将此selectList传递给ViewBag,然后在视图中访问此ViewBag。你应该先行动:
@Html.DropDownListFor(model => model.DriverTypeID,(SelectList)ViewBag.DriverTypes)
现在你应该这样做:
{{1}}
在表单提交并返回发布控制器后执行此操作后,您可以看到用户选择绑定到模型的driverTypeId。
注意:创建selectList时,您的列表中包含要在下拉列表中显示的ID和标题。