0
編集ビューでデータベースから元の選択した値を取得しようとしています。元の値を表示する必要があり、そこから別の値を選択することができます。あなたの編集GET行為でデータベースMVCからドロップダウンリストで選択した値を設定する
のViewModel
public Local Local { get; set; }
public SelectList Estados { get; set; }
public int IdEstadoSeleccionado { get; set; }
public SelectList Proveedores { get; set; }
public int IdProveedorSeleccionado { get; set; }
public LocalEditarViewModel(Local local, List<Estado> estados, List<Proveedor> proveedores,int estadoid)
{
this.Local = local;
this.Estados = new SelectList(estados, "Id", "State");
this.Proveedores = new SelectList(proveedores, "Id", "Nombre");
}
コントローラ
public ActionResult Edit(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Local local = db.Locales.Find(id);
List<Estado> estados;
List<Proveedor> proveedores;
using (AutoContex db = new AutoContex())
{
estados = db.Estados.ToList();
proveedores = db.Proveedores.ToList();
}
LocalEditarViewModel vm = new LocalEditarViewModel(local, estados, proveedores);
if (local == null)
{
return HttpNotFound();
}
Session["LocalId"] = local.Id;
return View(vm);
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit(LocalEditarViewModel vm)
{
using (AutoContex db = new AutoContex())
{
if (ModelState.IsValid)
{
string id = Session["LocalId"].ToString();
int localId = 0;
int.TryParse(id, out localId);
vm.Local.Id = localId;
vm.Local.Proveedor = db.Proveedores.Find(vm.IdProveedorSeleccionado);
vm.Local.Estado = db.Estados.Find(vm.IdEstadoSeleccionado);
Local original = db.Locales.Find(localId);
original.Estado = vm.Local.Estado;
original.Proveedor = vm.Local.Proveedor;
original.Id = localId;
original.Direccion = vm.Local.Direccion;
original.FechaIngreso = vm.Local.FechaIngreso;
//original.FechaInstalacion = vm.Local.FechaInstalacion;
original.Localidad = vm.Local.Localidad;
original.NombreComercio = vm.Local.NombreComercio;
original.NombreComercioUnificado = vm.Local.NombreComercioUnificado;
original.Provincia = vm.Local.Provincia;
original.Telefono = vm.Local.Telefono;
original.ViejoId = vm.Local.ViejoId;
original.NuevoId = vm.Local.NuevoId;
db.SaveChanges();
}
}
return View(vm);
}
VIEW
<div class="form-group">
@Html.LabelFor(model => model.Estados, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownListFor(model => model.IdEstadoSeleccionado, Model.Estados)
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.Proveedores, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownListFor(model => model.IdProveedorSeleccionado, Model.Proveedores,"--Select--")
</div>
それは働いた!ありがとうございました!! – EmiL