我将此代码从数据库中删除一个类别行。类别只有2列:Id和Name。 它没有宣布任何错误。它只是不起作用。
如果有效,则应重定向到Categories/Index
。相反,它会显示Categories/Delete
,但现在没有任何类别作为参数。
public ActionResult Delete(int id)
{
var category = db.Categories.Where(r => r.Id == id).SingleOrDefault();
return View(category);
}
[HttpPost]
public ActionResult Delete(Category category)
{
try
{
Category c = db.Categories
.Where(r => r.Id == category.Id)
.Single<Category>();
db.Categories.DeleteOnSubmit(c);
db.SubmitChanges();
return RedirectToAction("Index");
}
catch
{
return View(category);
}
}
但是这个Create动作的代码运行得很好:
public ActionResult Create()
{
Category c = new Category();
return View(c);
}
[HttpPost]
public ActionResult Create(Category category)
{
try
{
Category x = new Category
{
Name = category.Name
};
db.Categories.InsertOnSubmit(x);
db.SubmitChanges();
return RedirectToAction("Index");
}
catch
{
return View();
}
}
答案 0 :(得分:0)
原来我想测试删除功能的行被数据库中的另一个表引用为外键。
我测试了删除未被任何其他表引用的行。工作得很好。