【发布时间】:2021-12-23 22:59:15
【问题描述】:
我使用@Html.DropDownListFor 进行编辑会话时出错,我使用它来创建方法是成功的,但是当我在编辑方法中使用时失败,像这样的错误警告 System.InvalidOperationException: 'There is no具有键“roles_id”的“IEnumerable”类型的 ViewData 项。。
deail 文件如下:
编辑.cshtml:
<div class="form-group">
@Html.LabelFor(model => model.roles, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-12">
@Html.DropDownListFor(model => model.roles_id, (SelectList)ViewBag.RolesList, new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.roles_id, "", new { @class = "text-danger" })
</div>
</div>
EmployeeController.cs
// GET: Employee/Edit/{id}
public ActionResult Edit(int id)
{
AuthDBHandle dbhandle = new AuthDBHandle();
adminlteDBHandle sdb = new adminlteDBHandle();
var roles_id = sdb.GetEmployee().Find(smodel => smodel.employee_id == id).roles_id;
var roles = dbhandle.GetRoles();
ViewBag.RolesList = new SelectList(roles, "roles_id", "roles", roles_id);
return View(sdb.GetEmployee().Find(smodel => smodel.employee_id == id));
}
// POST: Employee/Edit/{id}
[HttpPost]
public ActionResult Edit(EmployeeViewModel smodel)
{
try
{
if (ModelState.IsValid)
{
adminlteDBHandle sdb = new adminlteDBHandle();
if (sdb.EditEmployee(smodel))
{
ViewBag.Message = "Edit employee is success";
ModelState.Clear();
return RedirectToAction("Index");
}
return View();
}
return View();
}
catch
{
return View();
}
}
EmployeeViewModel.cs
namespace adminlte.Models
{
public class EmployeeViewModel
{
[Display(Name = "Employee Id")]
public int employee_id { get; set; }
[Required(ErrorMessage = "Fullname is required.")]
public string fullname { get; set; }
[Required(ErrorMessage = "Address is required.")]
[DataType(DataType.MultilineText)]
public string address { get; set; }
public string roles { get; set; }
[Required(ErrorMessage = "Role ID is required.")]
public int roles_id { get; set; }
[Required(ErrorMessage = "Email is required.")]
[EmailAddress(ErrorMessage = "Invalid Email Address")]
public string email { get; set; }
public string password { get; set; }
}
}
我不知道为什么,我试图寻找一个例子,但都失败了,请帮我解决这个问题。
谢谢。
【问题讨论】:
标签: asp.net asp.net-mvc