2014-12-11 3 views
0

Я новичок в MVC. До сих пор мне удалось привязать данные из базы данных в выпадающем списке.Как получить выпадающий список выбранное значение

Как получить выбранное значение и передать его контроллеру для сохранения в базе данных?

Вот что я сделал до сих пор:

ВИД:

@Html.DropDownList("State", null, new { @class = "dropdown-toggle col-md-9 form-control" }) 

-регулятора (это, как связаны данные в списке)

IEnumerable<SelectListItem> states = db.RefState 
      .Select(s => new SelectListItem 
      { 
       Value = s.ID.ToString(), 
       Text = s.Name 
      }); 


     ViewBag.AddressType = types; 
     ViewBag.State = states; 
     return View(); 

Это, как я сохранить его в базе данных:

public ActionResult NewAddress(Address data) 
    { 
     if(ModelState.IsValid) 
     { 
      var addressData = new Address() 
      { 
       ZipCode = data.ZipCode, 
       StreetNo = data.StreetNo, 
       StreetName = data.StreetName, 
       Unit = data.Unit, 
       Additional = data.Additional, 
       Town = data.Town, 
       City = data.City, 
       StateID = ?, 
       Description = data.Description, 
       VendorCode = data.VendorCode 

      }; 

      db.Address.Add(addressData); 
      db.SaveChanges(); 
      ModelState.Clear(); 
      data = null; 
      ViewBag.Message = "Address succesfully added"; 
      return RedirectToAction("DeliveryInformation", "DeliveryDetail"); 
     } 

     return View(data); 
    } 
+0

попробуйте 'данные.State'. а не то, что данные отправляются с именем элемента управления. [Вы должны посетить эту ссылку для получения дополнительных знаний] (http://www.codeproject.com/Articles/551576/ASP-NET-MVC-Model-Binding-and-Data-Annotation) –

ответ

2

В вашем методе контроллера NewAddress добавить еще один параметр FormCollection formCollection.

теперь попробуйте:

StateID = formCollection["State"] 

В качестве альтернативы может быть чище, чтобы изменить имя атрибута вашего DropDownList в StateID вместо государства.

@Html.DropDownList("StateID", null, new { @class = "dropdown-toggle col-md-9 form-control" }) 

MVC будет отображать только значение элемента управления на имущество от параметра, если это имя атрибут имеет точно такое же значение, как имя свойства параметра.

+0

> спасибо большое ... это спас меня .. :) – aianLee

Смежные вопросы