C#学习教程:带有键'GenderID'的ViewData项的类型为'System.Int32',但必须为'IEnumerable'类型类型为“IEnumerable”当我尝试提交/发布数据时出现错误...有人可以帮助我完成我尝试的每篇文章,但他们没有帮助我。我是mvc的新手……这里有什么帮助我的代码是……publicActionResultCreate(){UserProfileCreateViewModelmodel=newUserProfileCreateViewModel();model.Gender=_GenderRepository.GetAll().Select(x=>newSelectListItem{Value=x.ID.ToString(),Text=x.DESCRIPTION});返回视图(模型);}[HttpPost]publicActionResultCreate(UserProfileCreateViewModelmodel){if(ModelState.IsValid){UserProfileuser=newUserProfile();user.GENDER_ID=model.GenderID;_UserProfileRepository.Add(用户);_UserProfileRepository.Save();返回RedirectToAction("索引","主页");}返回视图(模型);}视图@Html.LabelFor(model=>model.GenderID,new{@class="control-labelcol-md-2"})@Html.DropDownListFor(model=>model.GenderID,Model.Gender,"SelectfromList",new{@class="form-control"})@Html.ValidationMessageFor(model=>model.GenderID,string.Empty,new{@class="text-danger"})模型publicclassUserProfileCreateViewModel{[Required(ErrorMessage="{0}isrequired")][Display(Name="Gender")]publicintGenderID{get;放;}公共IEnumerable性别{得到;放;InvalidOperationException:键为“GenderID”的ViewData项目的类型为“System.Int32”,但必须为“IEnumerable”类型这里我试过这个..//POST:/UserProfile/Create/[HttpPost]publicActionResultCreate(UserProfileCreateViewModelmodel){if(ModelState.IsValid){UserProfileuser=newUserProfile();user.GENDER_ID=model.GenderID;_UserProfileRepository.Add(用户);_UserProfileRepository.Save();返回RedirectToAction("索引","主页");}model.Gender=_GenderRepository.GetAll().Select(x=>newSelectListItem{Value=x.ID.ToString(),Text=x.DESCRIPTION});返回视图(模型);错误意味着Model.Gender值为空(因此DropDownListFor()方法期望第一个参数是IEnumerable。在您的情况下,当您提交表单并且ModelState无效时,您返回视图并且有没有为Model.Gender分配值(因此它为null并抛出异常。确保在返回视图之前在POST方法(如GET方法)中重新分配Model.Gender的值。这可能是“性别”之间的问题:[Display(Name="Gender")]publicintGenderID{get;放;}公共IEnumerable性别{得到;放;如果我没记错的话,MVC会尝试自动映射字段。尝试重命名IEnumerableGenderEnumeration中的(Name="GenderID")或IEnumerableGender中的(Name="Gender")是“IEnumerable”类型共享的所有内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
