2016-10-10 2 views
4

Таким образом, я получил DropdownListfor, который похож, что на мой взгляд:DropDownListFor Как установить значение по умолчанию из базы данных

@Html.DropDownListFor(m => m.ProductCategory, new SelectList(Model.ProductCategories.OrderBy(m => m.PCNumber), "", "Name"), "") 

Это работает, как это должно быть. В моем следующем представлении пользователь должен иметь возможность редактировать свой заказ. Так что я хочу сделать, это, если он открывает форму все свои данные из, прежде чем должны быть отображены, для текстовых полей я получил его работать со следующим кодом:

@Html.TextBoxFor(m => m.NameOfProduct, new { @Value = @Model.NameofProduct }) 

Так что теперь моя проблема заключается в том, как я могу сделать то же самое, что я сделал с моими текстовыми полями (давая им значения по умолчанию из моей модели) для DropDownListFor, когда значение хранится в моей модели (базе данных)? Ему должно понравиться, если он выбрал категорию 3 раньше и теперь хочет отредактировать свой заказ раньше, выпадающий список должен показывать категорию 3 сразу.

Благодарим за помощь!

+0

Проверьте этот вопрос: http://stackoverflow.com/questions/23799091/html-dropdownlistfor-how-to-set-default-value. Конечно, вы можете установить значение DDL по умолчанию с любого контроллера или на вид. –

+1

Никогда не устанавливайте атрибут value в методах HtmlHelper. Его просто '@ Html.TextBoxFor (m => m.NameOfProduct)'. И для выпадающего списка вам просто нужно установить значение «ProductCategory» в методе GET, прежде чем передать модель в представление (например, 'model.ProductCategory = 3; return View (model);' –

+0

Спасибо вам за это. Если я правильно вас понимаю @StephenMuecke, я бы установил все мои значения для своих текстовых полей в методе get тоже? – RawMVC

ответ

3

Попробуйте этот код, возможно, он работает в вашей ситуации.

@Html.DropDownListFor(m=> m.PCNumber, new SelectList(m.ProductCategories, "PCNumber", "ProductCategory"), "-- Select Category --", new { @class = "form-control" }) 

здесь вы получите заказ редактирования по умолчанию в вашем раскрывающемся списке

[HttpGet] 
     public ActionResult EditOrder(int? id) 
     { 
      _obj_order_detail = db.order_detail.Find(id); 
      if (_obj_order_detail != null) 
      { 
       _obj_order_detail.ProductCategories = db.category_detail.ToList(); //get category List 
       return View(_obj_order_detail); 
      } 
      else 
      { 
       return view(); 
      } 

     } 

это вернет вид с заказом, который вы хотите редактировать и ProductCategories и выпадающие бушели по умолчанию содержат ProductCategory, который вы хотите редактировать

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