Ich habe eine Tabelle mit verschiedenen Zeilen und jede Zeile entspricht einer ID. Für jede Zeile habe ich die EDIT-Option, die es dem Benutzer ermöglicht, die Standardwerte für diese ID in den Feldern 'Edit.chtml' zu betrachten und dort zu aktualisieren, indem die Standardwerte gelöscht und neu eingegeben werden eingeben und speichern.Html.dropdownlist zeigt nicht den Standard/ausgewählten Wert im Dropdown-Feld
In ‚Edit.chtml‘, habe ich ein Feld für „Manager“, die ich mit default/ausgewähltem Wert mit einem Dropdown von Namen füllen muß angezeigt, entsprechend die ID der Zeile, wo Bearbeiten Betrieb ausgewählt ist aus Der Tisch. Ich benutze viewBag aber mein Problem ist die Dropdownliste zeigt immer das erste Element in der Liste und nicht den ausgewählten Wert. Bitte beachten Sie den folgenden Code.
Controller:
//
// GET: /ManagersNAMES/Edit/5
public ActionResult Edit(int id)
{
using (var db = new InpEntities())
{
var list_managers = (from x in db.TABLE_MANAGERS
select new TABLE_MANAGERSDTO
{
ID = x.ID,
NAME = x.NAME,
}).OrderBy(w => w.NAME).ToList();
ViewBag.managers = new SelectList(list_managers, "ID", "NAME", id);
return View();
}
}
public class TABLE_MANAGERSDTO
{
public string NAME { get; set; }
public int ID { get; set; }
}
//
// POST: /ManagersNAMES/Edit/5
[HttpPost]
public ActionResult Edit(int id, TABLE_INSTITUTES dp)
{
try
{
using (var db = new InpEntities())
{
TABLE_INSTITUTES tmp = (TABLE_INSTITUTES)db.TABLE_INSTITUTES.Where(f => f.ID == id).First();
tmp.MANAGER = dp.MANAGER;
db.SaveChanges();
return RedirectToAction("Index");
}
}
catch
{
return View();
}
}
Ausblick: 'Edit.chtml'
@{
ViewBag.Title = "Edit";
}
<h2>Edit</h2>
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
<fieldset>
<div class="editor-label" style="font-weight:bold">MANAGER</div>
<div class="editor-field">
@Html.DropDownList("dp.MANAGER", (SelectList)ViewBag.managers)
</div>
<p>
<input type="submit" value="Save" />
</p>
</fieldset>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>
Vielen Dank für Ihre Hilfe. Es beschwert sich über Value = x.ID "Kann Int nicht implizit in String konvertieren" Ich habe versucht, es zu konvertieren, funktioniert aber nicht – sunskin
Sorry, ich habe es nicht getestet, da ich nicht den vollständigen Code habe. Bitte versuchen Sie die toString() wie oben. – hutchonoid
Danke ich habe das versucht. Das scheint in Ordnung zu sein. Allerdings habe ich dieses Problem - "kann Typ nicht konvertieren" System.Collections.Generic.List "zu" System.Web.Mvc.SelectList "" –
sunskin