一旦该数据在 MVC 5 中为 deleted/edited,如何防止将相同的数据添加到列表中并重新使用它?
how to prevent adding same data to the list from downdown and reuse it once that data is deleted/edited in MVC 5?
this is the list of my units
this is how I add units to my list
This is what I want to prevent "Same Data Selected from Downdown again and again.
注意:shopNumber 和 Floor 是两个不同的 table,它们的 ID 用于主要单位表格。
这是我的单元控制器。
public ActionResult AddUnit() //GET UNITS
{
var floors = _Context.Floor.ToList();
var shops = _Context.Shop.ToList();
var viewModel = new UnitFormViewModel
{
Floors = floors,
Shops = shops
};
return View("AddUnit",viewModel);
}
//POST UNITS
[HttpPost]
public ActionResult Save( Unit Unit)
{
if (Unit.Id==0)
_Context.Unit.Add(Unit);
else
{
var unitInDb = _Context.Unit.Single(c => c.Id == Unit.Id);
unitInDb.Size = Unit.Size;
unitInDb.floorId = Unit.floorId;
unitInDb.shopId = Unit.shopId;
}
_Context.SaveChanges();
return RedirectToAction("leaseUnit", "Rent");
}
public ActionResult Edit(int id)
{
var Unit = _Context.Unit.SingleOrDefault(u => u.Id == id);
if (Unit == null)
return HttpNotFound();
var viewModel = new UnitFormViewModel
{
Unit=Unit,
Floors=_Context.Floor.ToList(),
Shops = _Context.Shop.ToList()
};
return View("EditUnit", viewModel);
}
//DELETE A UNIT
public ActionResult Delete(int id)
{
_Context.Unit.Remove(_Context.Unit.Find(id));
_Context.SaveChanges();
return RedirectToAction("unitList", "Home");
}
}
}
这是我在列表中添加一个单元查看代码:
@model mallform.ViewModel.UnitFormViewModel
@{
ViewBag.Title = "AddUnit";
}
<h2><strong>Add Unit</strong></h2>
@using (Html.BeginForm("Save", "Unit"))
{
@Html.LabelFor(m => m.Unit.Size)
@Html.TextBoxFor(m => m.Unit.Size, new { @class = "form-control " })
@Html.ValidationMessageFor(m => m.Unit.Size)
<br>
@Html.LabelFor(m => m.Unit.floorId)
@Html.DropDownListFor(m => m.Unit.floorId, new SelectList(Model.Floors, "Id", "Name"), "",
new { @class = "form-control" })
@Html.ValidationMessageFor(m => m.Unit.floorId)
<br>
@Html.LabelFor(m => m.Unit.shopId)
@Html.DropDownListFor(m => m.Unit.shopId, new SelectList(Model.Shops, "Id", "Name"), "",
new { @class = "form-control" })
@Html.ValidationMessageFor(m => m.Unit.shopId)
<br>
@Html.HiddenFor(m => m.Unit.Id)
<br>
<button type="submit" class="btn btn-primary">Add</button>
}
请告诉我如何防止从下拉菜单中将相同的数据添加到列表中,以及如何在编辑或删除该数据后重新激活该数据的添加。
if(_Context.Unit.Any(u => u.Id != Unit.Id && u.shopId == Unit.shopId))
{
// return because there already exist a Unit with this shopId
}
this is the list of my units
this is how I add units to my list
This is what I want to prevent "Same Data Selected from Downdown again and again.
注意:shopNumber 和 Floor 是两个不同的 table,它们的 ID 用于主要单位表格。
这是我的单元控制器。
public ActionResult AddUnit() //GET UNITS
{
var floors = _Context.Floor.ToList();
var shops = _Context.Shop.ToList();
var viewModel = new UnitFormViewModel
{
Floors = floors,
Shops = shops
};
return View("AddUnit",viewModel);
}
//POST UNITS
[HttpPost]
public ActionResult Save( Unit Unit)
{
if (Unit.Id==0)
_Context.Unit.Add(Unit);
else
{
var unitInDb = _Context.Unit.Single(c => c.Id == Unit.Id);
unitInDb.Size = Unit.Size;
unitInDb.floorId = Unit.floorId;
unitInDb.shopId = Unit.shopId;
}
_Context.SaveChanges();
return RedirectToAction("leaseUnit", "Rent");
}
public ActionResult Edit(int id)
{
var Unit = _Context.Unit.SingleOrDefault(u => u.Id == id);
if (Unit == null)
return HttpNotFound();
var viewModel = new UnitFormViewModel
{
Unit=Unit,
Floors=_Context.Floor.ToList(),
Shops = _Context.Shop.ToList()
};
return View("EditUnit", viewModel);
}
//DELETE A UNIT
public ActionResult Delete(int id)
{
_Context.Unit.Remove(_Context.Unit.Find(id));
_Context.SaveChanges();
return RedirectToAction("unitList", "Home");
}
}
}
这是我在列表中添加一个单元查看代码:
@model mallform.ViewModel.UnitFormViewModel
@{
ViewBag.Title = "AddUnit";
}
<h2><strong>Add Unit</strong></h2>
@using (Html.BeginForm("Save", "Unit"))
{
@Html.LabelFor(m => m.Unit.Size)
@Html.TextBoxFor(m => m.Unit.Size, new { @class = "form-control " })
@Html.ValidationMessageFor(m => m.Unit.Size)
<br>
@Html.LabelFor(m => m.Unit.floorId)
@Html.DropDownListFor(m => m.Unit.floorId, new SelectList(Model.Floors, "Id", "Name"), "",
new { @class = "form-control" })
@Html.ValidationMessageFor(m => m.Unit.floorId)
<br>
@Html.LabelFor(m => m.Unit.shopId)
@Html.DropDownListFor(m => m.Unit.shopId, new SelectList(Model.Shops, "Id", "Name"), "",
new { @class = "form-control" })
@Html.ValidationMessageFor(m => m.Unit.shopId)
<br>
@Html.HiddenFor(m => m.Unit.Id)
<br>
<button type="submit" class="btn btn-primary">Add</button>
}
请告诉我如何防止从下拉菜单中将相同的数据添加到列表中,以及如何在编辑或删除该数据后重新激活该数据的添加。
if(_Context.Unit.Any(u => u.Id != Unit.Id && u.shopId == Unit.shopId))
{
// return because there already exist a Unit with this shopId
}