C#学习教程:作为ViewBag或ModelC#/.NETMVC4的一部分更好的下拉列表两个模型:publicclassHardware{[Required]publicintId{get;放;}publicintSerialNum{得到;放;}publicintProductNum{得到;放;}publicstringNotes{get;放;}publicDateTimePurchaseDate}publicDateTimeWarrantyExpiration{get;放;}publicvirtualManufacturerManufacturer{get;放;}}publicclassManufacturer{publicintId{get;放;}[必填]publicstringName{get;放;}公共虚拟ICollection硬件{get;放;当我转到硬件创建视图时,我希望能够从制造商的下拉列表中进行选择,当它提交时,它应该在硬件和所选制造商之间建立关系。目前,我一直在使用SelectListselectList=newSelectList(db.Manufacturers,"Id","Name");在控制器中构建一个selectList。ViewBag.selectList=selectList;然后将其投射到视图中:@Html.DropDownListFor(model=>model.Manufacturer,ViewBag.selectListasSelectList)但是,似乎应该有更好的方法来做到这一点——也许创建一个继承自硬件的viewModel使用SelectList类型的属性?随着你的应用程序变得越来越复杂,你会看到你的MVC应用程序变成了M-VM-VC,VM是一个专用的ViewModel,它通常会添加UI层所需的一切来生成UI。就我个人而言,在这种情况下我不会继承,因为您的ViewModel不是模型的专门版本。这正是您的UI创建视图所需要的(完全取决于您)。我的ViewModel看起来像这样:publicclassHardwareVm{publicHardwareHardware{get;放;}公共IEnumerable制造商{得到;放;}}视图中:@Html.DropDownListFor(model=>model.Hardware.Manufacturer,Manufacturers)Controller:以上是C#学习教程:下拉列表作为ViewBag或者模型C#的一部分比较好/.NETMVC4。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注—varmanufacturers=db.Manufacturers.Select(m=>newSelectListItem{Text=m.Name,Value=m.ID});varmodel=newHardwareVm{制造商=制造商};本文收集自网络,不代表任何内容,如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处:
