Я не фанат использования Entity Framework, поэтому я хочу сделать так, чтобы при редактировании здесь
Позиционный индексный список
Я хочу отобразитьзначение отдела в раскрывающемся списке, и когда пользователь выбирает раскрывающийся список, он загружает весь список из базы данных.
Вот мой код контроллера в редактировании:
//GET data from database
public ActionResult UpdatePos(int pid)
{
DepartmentList posmodel = new DepartmentList();
DataTable dt = new DataTable();
using (MySqlConnection mysqlcon = new MySqlConnection(conn))
{
mysqlcon.Open();
string qry = "SELECT id,position,department FROM positions WHERE id = @pid";
MySqlDataAdapter da = new MySqlDataAdapter(qry, mysqlcon);
da.SelectCommand.Parameters.AddWithValue("@pid", pid);
da.Fill(dt);
}
if (dt.Rows.Count == 1)
{
//id and posistion is showing in my view
posmodel.Model.pid = Convert.ToInt32(dt.Rows[0][0].ToString());
posmodel.Model.position = dt.Rows[0][1].ToString();
posmodel.dplist = """"I don't know what should I code here""""
return View(posmodel);
}
else
return RedirectToAction("Index");
}
Вот мой вид:
<div class="form-group">
@Html.LabelFor(model => model.Model.position, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Model.position, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Model.position, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.dplist, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownListFor(model => model.dplist, new SelectList(Model.dplist, "deptname", "deptname",Model.Model.did))
@Html.ValidationMessageFor(model => model.dplist, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.Model.pid, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Model.pid, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Model.pid, "", new { @class = "text-danger" })
</div>
</div>
Моя модель
public class PositionModel
{
[Display(Name = "Position")]
[Required(ErrorMessage = "Position required.")]
public string position { get; set; }
[Display(Name = "Department")]
public string dept { get; set; }
public int pid { get; set; }
//public List<DeptList> dplist { get; set; }
public DeptList DeptList { get; set; }
public int did { get; set; }
public string deptname { get; set; }
}
public class DeptList
{
public int did { get; set; }
public string deptname { get; set; }
}
вывод должен быть