我可以从集合中删除某个项目的方法有哪些? (我正在使用MVC 4和EF。)
举个例子:
public class Birthday
{
public string Name { get; set; }
public virtual ICollection<Gift> Gifts { get; set; }
}
public class Gift
{
public string Name { get; set; }
public double Price { get; set; }
}
我正在使用Editing a variable length list, ASP.NET MVC 2-style创建一个动态的礼物列表。
该示例显示了如何“删除”一行。这将删除页面中的行,并将正确的礼物发送给控制器。
当我更新生日/礼物时,所有新内容都会正确更新,但删除的内容仍然存在。
所以我的问题是什么是删除礼物的首选方法?
我已经想到了两种方式:
我猜其他人有类似的问题并且有一个我还没想过的聪明的解决方案。
提前致谢!
答案 0 :(得分:2)
制作礼物api控制器。 让它有一个Delete方法接受你的Id所属类型的Id。 并在其中做这样的事情:
public class GiftsController: ApiController
{
public void Delete(Guid Id)
{
var context = new MyContext();
var giftToDelete = context.Gifts.FirstOrDefault(g=> g.Id == Id);
if(giftToDelete != null)
{
context.Gifts.Remove(giftToDelete);
context.SaveChanges();
}
}
}
确保在JS删除功能中向此api发出DELETE请求。
如果你太担心在正确的地方做事,你也可以用一些Service.DeleteGift(Id)
替换这个方法的主体。
答案 1 :(得分:0)
像这样:
public class ValuesController : ApiController
{
private List<string> list = new List<string>{"Item1","Item2","Item3","Item4","Item5"};
// DELETE api/values/5
public List<string> DeleteItem(int id)
{
list.Remove(list.Find((i => i.ToString().Contains(id.ToString()))));
return list;
}
}