文章内容
2017/4/13 10:21:36,作 者: 黄兵
DataBinding 不包含名为“Equipement_Id”的属性
最近在写代码的时候,出现了如下错误:
DataBinding:“System.Data.Entity.DynamicProxies.Equipment_3FA7F5BDF32AFF7396A1D7B9112BD2D52757DC43F55C13F6B4B538C48B1179B3”不包含名为“Equipement_Id”的属性。
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | public ActionResult EditContentSecond(int Id) { using (UnitOfWork uow = new UnitOfWork()) { var SecondItem = uow.ProjectDetailsRepository.Get(x => x.Project_SecondProId == Id); var Experts = uow.ExpertRepository.GetAll().ToList(); var Expert = uow.ExpertRepository.Get(x => x.Id == SecondItem.ExpertsId); ViewData["Expert"] = new SelectList(Experts, "Expert_Id", "Project_ExpertName"); var Equipment = uow.EquipmentRepository.Get(x => x.Id == SecondItem.EquipmentId); var Equipments=uow.EquipmentRepository.GetAll().ToList(); ViewData["Equipemnt"] = new SelectList(Equipments, "Equipemnt_Id", "Project_EquipmentName"); ViewBag.picUrl = SecondItem.Project_ProjectImgUrl; var ModelItem = new Pro_TextViewModel(); ModelItem.Id = SecondItem.Project_SecondProId; ModelItem.Project_CaseCompasionImgUrl = SecondItem.Project_CaseCompasionImgUrl; ModelItem.Project_Summary = SecondItem.Project_Summary; ModelItem.Project_TechnologyFeature_1 = SecondItem.Project_TechnologyFeature_1; ModelItem.Project_TechnologyFeature_2 = SecondItem.Project_TechnologyFeature_2; ModelItem.Project_TechnologyFeature_3 = SecondItem.Project_TechnologyFeature_3; ModelItem.Project_TechnologyFeature_4 = SecondItem.Project_TechnologyFeature_4; ModelItem.Project_TechnologyFeature_5 = SecondItem.Project_TechnologyFeature_5; ModelItem.Project_TechnologyFeature_6 = SecondItem.Project_TechnologyFeature_6; ModelItem.Project_ProjectImgUrl = SecondItem.Project_ProjectImgUrl; ModelItem.Project_TechAdvantage = SecondItem.Project_TechAdvantage; ModelItem.Project_Introduction = SecondItem.Project_Introduction; ModelItem.Project_HotQA = SecondItem.Project_HotQA; ModelItem.Project_ExpertName = Expert.Project_ExpertName; ModelItem.Project_ExpertTitled = Expert.Project_ExpertTitled; ModelItem.Project_ExpertDepartment = Expert.Project_ExpertDepartment; ModelItem.Project_RecommandExpertImgUrl = Expert.Project_RecommandExpertImgUrl; ModelItem.Project_EquipmentImgUrl = Equipment.Project_EquipmentImgUrl; ModelItem.Project_EquipmentName = Equipment.Project_EquipmentName; ModelItem.Expert_Id = SecondItem.ExpertsId; ModelItem.Equipment_Id = SecondItem.EquipmentId; return View(ModelItem); } } |
最主要的还是这两句:
ViewData["Expert"] =newSelectList(Experts,"Expert_Id","Project_ExpertName");
ViewData["Equipemnt"] =newSelectList(Equipments,"Equipemnt_Id","Project_EquipmentName");
我们看一下模型:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | namespace _8677333.AppDAL.Entities{ public class Expert { public Expert() { ProjectDetails = new HashSet<ProjectDetails>(); } public int Id { get; set; } [DisplayName("推荐专家")] public string Project_RecommandExpertImgUrl { get; set; } [DisplayName("专家名字")] public string Project_ExpertName { get; set; } [DisplayName("专家简介")] public string Project_ExpertSummary { get; set; } [DisplayName("专家部门")] public string Project_ExpertDepartment { get; set; } [DisplayName("专家年龄")] public int Project_ExpertAge { get; set; } [DisplayName("专家职位")] public string Project_ExpertTitled { get; set; } public virtual ICollection<ProjectDetails> ProjectDetails { get; set; } }} |
这里是Id,而ViewData["Expert"]是Expert_Id,下面也是一样。
最后修改代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | public ActionResult EditContentSecond(int Id) { using (UnitOfWork uow = new UnitOfWork()) { var SecondItem = uow.ProjectDetailsRepository.Get(x => x.Project_SecondProId == Id); var Experts = uow.ExpertRepository.GetAll().ToList(); var Expert = uow.ExpertRepository.Get(x => x.Id == SecondItem.ExpertsId); ViewData["Expert"] = new SelectList(Experts, "Id", "Project_ExpertName"); var Equipment = uow.EquipmentRepository.Get(x => x.Id == SecondItem.EquipmentId); var Equipments=uow.EquipmentRepository.GetAll().ToList(); ViewData["Equipemnt"] = new SelectList(Equipments, "Id", "Project_EquipmentName"); ViewBag.picUrl = SecondItem.Project_ProjectImgUrl; var ModelItem = new Pro_TextViewModel(); ModelItem.Id = SecondItem.Project_SecondProId; ModelItem.Project_CaseCompasionImgUrl = SecondItem.Project_CaseCompasionImgUrl; ModelItem.Project_Summary = SecondItem.Project_Summary; ModelItem.Project_TechnologyFeature_1 = SecondItem.Project_TechnologyFeature_1; ModelItem.Project_TechnologyFeature_2 = SecondItem.Project_TechnologyFeature_2; ModelItem.Project_TechnologyFeature_3 = SecondItem.Project_TechnologyFeature_3; ModelItem.Project_TechnologyFeature_4 = SecondItem.Project_TechnologyFeature_4; ModelItem.Project_TechnologyFeature_5 = SecondItem.Project_TechnologyFeature_5; ModelItem.Project_TechnologyFeature_6 = SecondItem.Project_TechnologyFeature_6; ModelItem.Project_ProjectImgUrl = SecondItem.Project_ProjectImgUrl; ModelItem.Project_TechAdvantage = SecondItem.Project_TechAdvantage; ModelItem.Project_Introduction = SecondItem.Project_Introduction; ModelItem.Project_HotQA = SecondItem.Project_HotQA; ModelItem.Project_ExpertName = Expert.Project_ExpertName; ModelItem.Project_ExpertTitled = Expert.Project_ExpertTitled; ModelItem.Project_ExpertDepartment = Expert.Project_ExpertDepartment; ModelItem.Project_RecommandExpertImgUrl = Expert.Project_RecommandExpertImgUrl; ModelItem.Project_EquipmentImgUrl = Equipment.Project_EquipmentImgUrl; ModelItem.Project_EquipmentName = Equipment.Project_EquipmentName; ModelItem.Expert_Id = SecondItem.ExpertsId; ModelItem.Equipment_Id = SecondItem.EquipmentId; return View(ModelItem); } } |
更改代码运行,问题解决。
前端代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <div class="hr-line-dashed"></div> <div class="form-group"> @Html.LabelFor(model => model.Project_ExpertName, htmlAttributes: new { @class = "control-label col-md-2" }) <div class="col-sm-10"> @Html.DropDownList("Expert_Id", ViewData["Expert"] as SelectList, htmlAttributes: new { @class = "form-control" }) @Html.ValidationMessageFor(model => model.Id, "", new { @class = "text-danger" }) </div> </div> <div class="hr-line-dashed"></div> <div class="form-group"> @Html.LabelFor(model => model.Project_EquipmentName, htmlAttributes: new { @class = "control-label col-md-2" }) <div class="col-sm-10"> @Html.DropDownList("Equipement_Id", ViewData["Equipemnt"] as SelectList, htmlAttributes: new { @class = "form-control" }) @Html.ValidationMessageFor(model => model.Project_EquipmentName, "", new { @class = "text-danger" }) </div> </div> <div class="hr-line-dashed"></div> |
前端如何绑定并没有受到什么影响。
评论列表