2013-02-21 105 views
1

我很新的MVC。我有以下代碼剃刀:MVC 4 - 如何從下拉列表中選擇項目

@using (Html.BeginForm()) { 
    @Html.ValidationSummary(true) 

    <fieldset style="margin:5px"> 
     <legend>List a Bicycle for Sale</legend> 

     <div class="editor-label"> 
      @Html.LabelFor(model => model.BicycleManfacturer) 
     </div> 
     <div class="editor-field"> 
      @Html.DropDownList("ManufacturerList") 
     </div> 

     .... 
     .... 


     <div class="float-right"> 
      <input type="submit" value="List Bike" /> 
     </div> 
    </fieldset> 
} 

「ManufacturerList」是存儲在ViewBag的SelectedListItem列表(我不想爲我所有下拉列表創建模型)。這是通過這種方法建立:

private void HydrateManufacturerList() 
    { 
     var manufacturerList = (from row in db.BicycleManufacturer.ToList() 
           select new SelectListItem 
           { 
            Text = row.Description, 
            Value = row.BicycleManufacturerId.ToString() 
           }).ToList(); 
     manufacturerList.Add(new SelectListItem 
     { 
      Text = "-- Select Manufacturer --", 
      Value = "0", 
      Selected = true 
     }); 
     ViewBag.ManufacturerList = manufacturerList.OrderBy(row => row.Text); 
    } 

我有下面的代碼時,提交時調用完成:

[HttpPost] 
    public ActionResult Create(BicycleSellerListing bicyclesellerlisting) 
    { 
     bicyclesellerlisting.ListingDate = System.DateTimeOffset.Now; 

     if (ModelState.IsValid) 
     { 
      db.BicycleSellerListing.Add(bicyclesellerlisting); 
      db.SaveChanges(); 
      return RedirectToAction("Index"); 
     } 

     return View(bicyclesellerlisting); 
    } 

我想不出如何從下拉列表中獲得選定製造商當用戶將視圖發回到我的控制器並執行此方法時。

+1

請在您的帖子中顯示更多模特兒。你可以用幾種方法來做到這一點。最好的是使用lambda和DropDownListFor – 2013-02-21 16:17:55

+1

這個網站有很多相同的問題。請研究它們。尤其是,@DaveA suggession(dropdownlistfor - strong-typed-helpers) – 2013-02-21 16:19:43

+0

使用Html.DropDownListFor – swapneel 2013-02-21 16:24:08

回答

1

使用

public ActionResult Create(BicycleSellerListing bicyclesellerlisting, FormCollection collection) 
{ 
    ... 

你可以得到所有的輸入,包括選單中選擇項目,如集合[「ManufacturerList」]或類似你的下拉列表名稱隨下降。

相關問題