-2
私はドロップダウンリストを持っていますが、私はそれをCreate ActionResultで使用するために選択した値を取得したいのですが、値は常に空の文字列として渡され、理由は分かりません。asp.net mvcのドロップダウンリストで選択した値を取得する方法
ビュー
<div class="form-group">
<input type="hidden" id="hidText" name="hidText" />
@Html.LabelFor(model => model.Armoire, "Armoire", htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("id", ViewBag.LocalGabarit as SelectList, "Sélectionnez Armoire", htmlAttributes: new { @class = "form-control"})
@Html.ValidationMessageFor(model => model.Armoire, "", new { @class = "text-danger" })
</div>
</div>
コントローラー:
// GET: Produits/Create
public ActionResult Create()
{
ViewBag.idPole = new SelectList(db.Pole, "id", "designation");
var armoire = db.Local_Gabarit.Select(x => x.Armoire).Distinct();
ViewBag.LocalGabarit = new SelectList(armoire);
//ViewBag.LocalGabarit = new SelectList(db.Local_Gabarit, "id", "Armoire");
return View();
}
// POST: Produits/Create
// To protect from overposting attacks, please enable the specific properties you want to bind to, for
// more details see http://go.microsoft.com/fwlink/?LinkId=317598.
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(Produits produits)
{
localrepository=new LocalRepository(db);
if (ModelState.IsValid)
{
string armoir = Request.Form["hidText"].ToString();
db.Produits.Add(produits);
db.SaveChanges();
var reference = produits.Reference;
var designation = produits.DesignationProduit;
var insertproduit = localrepository.InsertLocal(armoir, reference, designation);
return RedirectToAction("Index");
}
ViewBag.idPole = new SelectList(db.Pole, "id", "designation", produits.idPole);
var armoire = db.Local_Gabarit.Select(x => x.Armoire).Distinct();
ViewBag.LocalGabarit = new SelectList(armoire);
return View(produits);
}
プロパティ 'id'にバインドされている'
リストを' id'にバインドしました。あなたのモデルは 'id'プロパティを持っていますか? – Nope
選択された値に対してViewBagのみを使用する[** Hmtl.DropDownListの複製が可能**](http://stackoverflow.com/questions/10330059/hmtl-dropdownlist-using-only-viewbag-for-selected-value) – Nope