比方说,我有一个带有员工ID的员工列表。在控制器的“创建”视图中,我有:
public ActionResult Create()
{
ViewBag.EmployeeList= db.Employees.ToList().Select(x => new SelectListItem
{
Value = x.EmployeeID.ToString(),
Text = String.Format(x.FirstName + " " + x.LastName)
});
var quote = new Quote();
return View(quote);
}
(旁注:我很确定通过在创建视图中再次定义new SelectList
在我的代码中实现了SelectList的效率很低)
然后在“创建视图”本身中:
<div class="form-group">
@Html.LabelFor(model => model.EmployeeID, htmlAttributes: new { @class = "control-label col-md-4 employee-list" })
<div class="col-md-8">
@Html.DropDownListFor(model => model.EmployeeID, new SelectList(ViewBag.EmployeeList, "Value", "Text"), new { @class = "form-control employee-list" })
@Html.ValidationMessageFor(model => model.EmployeeID, "", new { @class = "text-danger" })
</div>
</div>
我想编写一个JS / JQuery函数,该函数在选定的Employee更改时获取EmployeeID的值。目前,这只是给我一个选项号:
$(document).ready(function () {
$('.employee-list').change(function () {
console.log($(this).val());
});
});
这里的目的是我想使用EmployeeID来填充Create视图中的另一个DropDownList字段,例如“分配给经理”。经理将拥有一个EmployeeID列表,并且一个EmployeeID可以分配给多个Manager。在“创建”视图中选择一个Employee后,将使用JS来获取EmployeeID,将其发送到后端,在Managers表中查询找到的EmployeeID,将该Manager列表返回给JS,然后插入到HTML的HTML中。页面。
DropDownList中可能会使用一部分Employees,例如,EmployeeID为[3、5、11、15],因此我不能仅从选项号中减去1来获得员工编号。
答案 0 :(得分:0)
糟糕,事实证明我需要了解有关SQL的更多信息。
我正在用以下数据播种我的SQL数据库:
context.Employees.AddOrUpdate(x => x.EmployeeID,
new DelegationApprover() { EmployeeID = 0, FirstName = "Eileen", LastName = "Dover" }
new DelegationApprover() { EmployeeID = 1, FirstName = "Wayne", LastName = "Carr" },
new DelegationApprover() { EmployeeID = 2, FirstName = "Richard", LastName = "Head" },
);
我以为我将EmployeeID设置为从0开始,但是SQL强制将其从1开始。我正在使用以下数据,以为我正在使用前者:
context.Employees.AddOrUpdate(x => x.EmployeeID,
new DelegationApprover() { EmployeeID = 1, FirstName = "Eileen", LastName = "Dover" }
new DelegationApprover() { EmployeeID = 2, FirstName = "Wayne", LastName = "Carr" },
new DelegationApprover() { EmployeeID = 3, FirstName = "Richard", LastName = "Head" },
);
当我检查($(this).val())
的员工变动时,似乎正在返回其选项号而不是ID值。事实证明,它一直在返回我想要的值。