2017-01-24 7 views
0

Wenn ich Kategorie aus Dropdown auswählen wird nicht in der Datenbank gespeichert. In der Datenbank wird es 101 für alle WerteSo speichern Dropdown-Werte in der Datenbank in asp.net MVC

MY view.cshtml ist

<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> 

Mein Controller

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); 
    } 

Antwort

0

zeigt sollten Sie den ausgewählten Drop-Down-Wert auf die Verwendung von "DropDownListFor" und zuweisen entsprechende Modelleigenschaft, wie folgt:

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

Während dies eine viel bessere Syntax ist, explodiert es nicht ain OPs Problem - und beide Methoden nennen letzten Endes intern den gleichen Code (und hast du diese Frage ernsthaft überarbeitet) –

+0

@StephenMuecke warum nicht? Seine Version hat kein "for", daher weiß sie nicht, welcher Modelleigenschaft der Wert zugewiesen werden soll. Außerdem habe ich die Frage nicht aktualisiert, es sei denn, ich verpasse etwas in diesem Kommentar) – ganders

+0

Sorry, das sollte upvote (nicht update). Der OP-Code ist vielleicht eine üble Übung, aber er wird immer noch korrekt an eine Eigenschaft mit dem Namen 'Category' gebunden (vorausgesetzt, es ist ein' int'). Die Frage kann nicht beantwortet werden - wir haben keine Ahnung, was OPs Modell oder Daten sind. –

Verwandte Themen