2017-05-08 25 views
-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); 
} 
+1

プロパティ 'id'にバインドされている'