2014-03-19 4 views
0

Im работает с MVC 4 (бритва).как передать выбранное значение (dropdownlist) в параметр контроллера?

Я использую dropdownlist вместо dropdownlistFor, потому что выпадающий список может отображать выбранное значение, получая данные из базы данных. Поэтому мне нужно знать, как передать значение, выбирая значение из раскрывающегося списка в параметр «Действие» («Изменить») без использования выпадающего списка для модели. Есть ли способ решить эту проблему? Я вижу, что VmCarList из ViewModel имеет значение null.

ViewModels

public IEnumerable<Cars> VmCarList { get; set; } 
public CarData VmCarData { get; set; } 

Контроллер

[HttpGet] 
public ActionResult Edit(int id) 
    { 


     _viewModels.VmCarList = Repository.LoadAllCarNames(); 

     string selectedCar = (from car in _viewModels.CarList 
          where car.carId == id 
          select car.Name).First(); 

     ViewBag.CarNames = new SelectList(_viewModels.CarList, "CarName", "CarName", selectedCar); 

     return View(_viewModels); 
    } 

Посмотреть

@model CarProgram.Models.ViewModels 

    @Html.DropDownList("CarList", (SelectList)ViewBag.CarNames) 

Контроллер

[HttpPost] 
    public ActionResult Edit(int id, ViewModels data) 
    { 
     try 
     { 
      if (ModelState.IsValid) 
      { 
       var car = new CarData(); 
       UpdateModel(car); 

       bool result = Repository.UpdateCar(car); 
      } 

      return RedirectToAction("Index"); 
     } 
     catch 
     { 
      return View(); 
     } 
    } 

ответ

5

Если вы используете @Html.DropDownList("CarList", (SelectList)ViewBag.CarNames), вы должны добавить CarList в действие как параметр. Или, если вы хотите получить стоимость автомобиля от модели, вы должны использовать DropDownListFor:

@Html.DropDownListFor(model => model.VmCarData, ViewBag.CarNames as IEnumerable<SelectListItem>, "-Select Car-", new { @id = "carDDL" }) 
+0

Я добавил параметр CarList к параметру. Оно работает! Ничего себе это так просто. Огромное спасибо!!! – user2857908

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

  • Нет связанных вопросов^_^