2017-05-08 240 views
-2

我有一个下拉列表,我希望获得选定的值以在我的Create ActionResult中使用它,但问题是该值总是作为空字符串传递,不知道为什么。如何在asp.net中的dropdownlist中获得选定的值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”的“