【发布时间】:2018-04-20 15:00:57
【问题描述】:
我有一个带有多选选择“部门”下拉菜单的“添加员工”模式。单击按钮时,将运行 ajax 调用来调用相应的控制器并将值传递给数据库。我可以传递除“部门”下拉列表之外的所有内容。
我试过了:
$.ajax({
...
data: { ..., Department: $("#cmbAddDepartment").val(), .... }
})
$.ajax({
...
data: { ...., Department: $("#cmbAddDepartment").getValue(), ... }
})
和
var selectize = $('#cmbAddDepartment').get(0).selectize;
var cmbAddDepartment=selectize.getValue();
$.ajax({
...
data: { ... , Department: cmbAddDepartment, ... }
})
有趣的是,所有这些都在 alert() 中工作,但不在 ajax 数据中。
我正在使用: 引导程序 4 阿尔法 6, jQuery 3.2.1, 独立选择 0.12.4
编辑:
仅供参考,我所有的其他组合框都是单选(仍然选择),$("#cmbAddSomething").val()` 适用于它们。
编辑 2:这是控制器和(视图)模型
视图模型 - vmEmpCreate.cs
public class vmEmpCreate
{
public vmEmpCreate()
{
//constructor
}
//combo
public string Company { get; set; }
public string Site { get; set; }
public string[] Department { get; set; } //can be multiple
public string ProductionLine { get; set; }
public IEnumerable<SelectListItem> AddCompany { get; set; }
public IEnumerable<SelectListItem> AddSite { get; set; }
public IEnumerable<SelectListItem> AddDepartment { get; set; }
public IEnumerable<SelectListItem> AddProductionLine { get; set; }
}
public class MyListSelectForAdd
{
public string Key { get; set; }
public string Display { get; set; }
}
控制器 - Controller.cs
[HttpPost]
public ActionResult AddEmployee(vmEmpCreate vmc)
{
if (ModelState.IsValid)
{
modEmployee addemp = new modEmployee();
addemp.Company = vmc.Company;
addemp.Site = vmc.Site;
addemp.Department = vmc.Department;
...
addemp.Remarks = vmc.Remarks;
conn = new SqlConnection(someConnectionString);
conn.Open();
comm = new SqlCommand("insert into someTable (company, site, department, ..., remarks) values ('"
+ addemp.Company + "' , '"
+ addemp.Site + "' , '"
+ addemp.Department + "' , '"
...
+ addemp.Remarks + "')", conn);
comm.ExecuteNonQuery();
conn.Close();
}
return PartialView();
}
编辑 3: 根据建议,我使用 chrome 检查器检查了我的程序以查看任何错误,但没有出现。
【问题讨论】:
标签: javascript c# twitter-bootstrap selectize.js