【发布时间】:2011-06-01 19:00:22
【问题描述】:
我有两个模型 - 类别和文章。我对它们都有几乎相同的删除视图和控制器。唯一的区别是它适用于类别,但对于文章,我在 HttpPost 上得到空模型。
分类:
public ActionResult DeleteCat(int id)
{
Category cat = db.CategoryByID(id);
if (cat != null)
{
return View(cat);
}
return RedirectToAction("Index");
}
[HttpPost]
public ActionResult DeleteCat(Category model)
{
db.DeleteCategory(model.CategoryID);
return RedirectToAction("Index");
}
文章:
public ActionResult Delete(int id)
{
Article art = db.ArticleByID(id);
if (art != null)
{
return View(art);
}
return RedirectToAction("Index");
}
[HttpPost]
public ActionResult Delete(Article model)
{
db.DeleteArticle(model.ArticleID);
return RedirectToAction("Index");
}
这两个视图都是由 Visual Studio 生成的,我没有更改它们。当我想删除一个类别时,一切顺利。但是当我想删除一篇文章时,首先从数据库中正确选择它,然后显示视图(一切正常)但是当我单击删除按钮时模型为空(所有属性为 0、null 或 false)和所以 db.DeleteArticle 抛出异常(没有 ArticleID = 0 的文章)。任何人都可以向我提供有关我应该检查什么或应该如何解决这个问题的任何提示吗?
【问题讨论】:
-
您的文章类是什么样的?
-
是的,就像@SLaks 所说,您可以向您的 HttpPost 删除操作添加一个参数,例如
FormCollection coll。发布后,您可以检查集合以查看随表单发布的所有键/值。 -
看看函数调用
db.ArticleByID(id)- 它返回一个有效的对象吗?
标签: c# asp.net-mvc-3 razor