私はMVCとC#の新機能であり、リストから都市を複数選択して後でDBに格納できるようにしようとしています。私はこれに関するいくつかの記事のカップルを読んだが、私の問題を解決する方法を理解できませんでした。私は自分のフォームの他のすべての項目を保存することができます:C#で複数のselction/Dropdownlistを保存する方法
は@using (Html.BeginForm("AddProjectInfo", "Insert", FormMethod.Post, new {
enctype = "multipart/form-data"
@id = "insertform", @class = "form-horizontal col-md-4 col-md-offset-4"
}))
が、都市のそれだけですべての最初の選択した項目を保存していません。これを解決するために私を助けてくれますか?
[HttpPost]
public ActionResult Insert(FormCollection frm) {
Models.ProjectInfo p = new Models.ProjectInfo();
String[] Cities= frm.GetValues("City");
p.ContractId = frm[ "ContractId" ];
p.Year = Convert.ToDecimal(frm[ "Year" ]);
p.City = Cities.ToString();
p.Location = frm[ "Location" ];
// Insert into the Database
AddProjectInfo(p);
ViewBag.ResponseMessage = "Submitted !";
}
私はJavaScriptを使用していることを行う方法を知っているが、C#はそれを扱うことができる方法を知ってはいけない:
<div class="form-group">
<label class="col-sm-3 col-form-label text-left">City * </label>
<div class="col-sm-9">
@Html.DropDownList(
"City",
new SelectListItem[] {
new SelectListItem {
Text = "Cambridge", Value = "Ca"
},
new SelectListItem {
Text = "Oxford", Value = "Ox"
},
new SelectListItem {
Text = "Sheffield", Value = "Sh"
}
},
"--Select Cities--",
new {
@class = "form-control",
required = true,
multiple = "multiple"
}
)
</div>
</div>
はここに私のコントローラである:
は、ここに私の見解です。 ありがとう!
public ActionResult Insert(FormCollection frm)これは、htmlの入力に対応するフィールドを持つ実際のモデルである必要があります – Steve
'Multiple'で' DropDownList() 'を使用しないでください - ListBoxFor() (http://stackoverflow.com/questions/40725358/why-does-the-dropdownlistfor-lose-the-multiple-selection-after-submit-but-the-li/40732481#40732481))。そして、 'FormCollection'を使わないでください。ビューモデルを作成し、プロパティにバインドする - [この回答](http://stackoverflow.com/questions/37848223/listboxfor-not-letting-me-select-multiple-items-mvc/37848327#37848327)典型的な実装 –