私は、複数選択選択「部門」ドロップダウンを持つ「従業員の追加」モーダルを持っています。ボタンをクリックすると、Ajaxコールが実行され、それぞれのコントローラを呼び出して値をデータベースに渡します。私は "Department"のドロップダウンを除いてすべてを渡すことができます。select multiselectを使用してデータベースに値を渡します
私が試してみました:
$.ajax({
...
data: { ..., Department: $("#cmbAddDepartment").val(), .... }
})
$.ajax({
...
data: { ...., Department: $("#cmbAddDepartment").getValue(), ... }
})
と
var selectize = $('#cmbAddDepartment').get(0).selectize;
var cmbAddDepartment=selectize.getValue();
$.ajax({
...
data: { ... , Department: cmbAddDepartment, ... }
})
をおかしい事は、Ajaxのデータ内部alert()
ではなく、内部のすべてのそれらの作品です。
私が使用しています: ブートストラップ4アルファ6、 jQueryの3.2.1、 スタンドアロンSelectize 0.12.4
EDIT: ちょうどFYI、すべて私の他のコンボボックスが単一選択されている(まだselectizeを)、$("#cmbAddSomething"
).val() `が動作します。
EDIT 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();
}
EDIT 3:提案通り、私はエラーを見るためにクロムインスペクタで私のプログラムをチェックしましたが、カムはありませんeアップ。
oh!はい、私はすでにしました。それを質問に含めるのを忘れてしまった。申し訳ありませんが、今編集します。ありがとうございました。 –
よろしいですか。要求が送信されていることをコンソールにチェックしましたか?また、リクエストを受け取ったサーバーサイドコードの一部を表示できますか? – Shawn31313
はい、他の値はデータベースに保存されます。私のコードがコントローラに入ると、model.Departmentは常にnullです。申し訳ありませんが、サーバーサイドコードが意味することを明確にすることはできますか? –