2017-01-24 2 views
0

Когда я выбираю категорию из раскрывающегося списка, она не сохраняется в базе данных. В базе данных он показывает 101 для всех значенийКак сохранить выпадающие значения в базе данных в asp.net MVC

MY view.cshtml является

<h4>RecStock</h4> 
    <hr /> 
    @Html.ValidationSummary(true, "", new { @class = "text-danger" }) 
    <div class="form-group"> 
     @Html.LabelFor(model => model.Category, htmlAttributes: new { @class = "control-label col-md-2" }) 
     <div class="col-md-10"> 
      <div class="editor-field"> 
       @Html.DropDownList("Category",null, new { @class = "form-control" }) 
       </div> 
       @Html.ValidationMessageFor(model => model.Category, "", new { @class = "text-danger" }) 
      </div> 
    </div> 

Моего контроллер

public ActionResult Create() 
    { 
     ViewBag.Category = new SelectList(db.ProductDetails, "id", "Category"); 
     return View(); 
    } 


    [HttpPost] 
    [ValidateAntiForgeryToken] 
    public ActionResult Create([Bind(Include = "Category,ProductName,ReceiveQty,Date")] RecStock recStock) 
    { 

     if (ModelState.IsValid) 
     { 
      db.RecStocks.Add(recStock); 
      ViewBag.Category = new SelectList(db.ProductDetails, "id", "Category", recStock.id); 
      db.SaveChanges(); 
      return RedirectToAction("Index"); 
     } 

     return View(recStock); 
    } 

ответ

0

Вы должны использовать «DropDownListFor» и назначить выбранное выпадающее значение к Соответствующая модель собственности, например:

@Html.DropDownListFor(m => m.MyModelProperty, new SelectList(Model.ListOfStuff, "ListOfStuffId", "ListOfStuffName"), string.Empty, new {@class = "form-control", id = "myList"}) 
+0

Хотя это гораздо лучший синтаксис, он не объясняет в проблеме OP - и оба метода в конечном итоге вызывают один и тот же код внутри (и вы серьезно обновили этот вопрос). –

+0

@StephenMuecke, почему это не так? Его версия не имеет «for», поэтому она не знает, какое свойство модели присваивает значение. Кроме того, я не обновлял вопрос, если я не пропустил что-то в этом комментарии) – ganders

+0

Извините, это должно было быть увеличено (не обновлено). Код OP может быть ужасной практикой, но он по-прежнему будет корректно привязан к свойству с именем 'Category' (при условии его' int'). На вопрос нельзя ответить - мы понятия не имеем, какая модель или данные OP. –

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