【发布时间】:2016-03-21 06:37:15
【问题描述】:
当我尝试提交/发布数据时发生错误......有人可以帮助我尝试每个帖子,但他们没有帮助我。我是 mvc 的新手...任何帮助都将被授予 这是我的代码...
public ActionResult Create()
{
UserProfileCreateViewModel model = new UserProfileCreateViewModel();
model.Gender = _GenderRepository.GetAll()
.Select(x => new SelectListItem
{
Value = x.ID.ToString(),
Text = x.DESCRIPTION
});
return View(model);
}
[HttpPost]
public ActionResult Create(UserProfileCreateViewModel model)
{
if (ModelState.IsValid)
{
UserProfile user = new UserProfile();
user.GENDER_ID = model.GenderID;
_UserProfileRepository.Add(user);
_UserProfileRepository.Save();
return RedirectToAction("Index", "Home");
}
return View(model);
}
查看
<div class="form-group">
@Html.LabelFor(model => model.GenderID, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownListFor(model => model.GenderID, Model.Gender, "Select from List", new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.GenderID, string.Empty, new { @class = "text-danger" })
</div>
</div>
型号
public class UserProfileCreateViewModel
{
[Required(ErrorMessage="{0} is required")]
[Display(Name="Gender")]
public int GenderID { get; set; }
public IEnumerable<SelectListItem> Gender { get; set; }
}
InvalidOperationException:具有键“GenderID”的 ViewData 项属于“System.Int32”类型,但必须属于“IEnumerable
”类型。
这里我试过这个...... // POST: /UserProfile/Create/
[HttpPost]
public ActionResult Create(UserProfileCreateViewModel model)
{
if (ModelState.IsValid)
{
UserProfile user = new UserProfile();
user.GENDER_ID = model.GenderID;
_UserProfileRepository.Add(user);
_UserProfileRepository.Save();
return RedirectToAction("Index", "Home");
}
model.Gender = _GenderRepository.GetAll().Select(x =>
new SelectListItem
{
Value = x.ID.ToString(),
Text = x.DESCRIPTION
});
return View(model);
}
【问题讨论】:
-
添加您的堆栈跟踪或至少指出引发异常的位置。
-
异常在 View At this line @Html.DropDownListFor(model => model.GenderID, Model.Gender, "Select from List", new { @class= "form-control" })
-
我很确定您将错误的参数传递给
DropDownListFor函数。我认为你应该在那里的某个地方创建一个新的 SelectList... -
我在另一个项目中以同样的方式创建了下拉列表,它在那里工作正常,但在这里不工作。
标签: c# asp.net-mvc