Tengo dos modelos: categoría y artículo. Tengo prácticamente las mismas vistas y controladores de eliminación para ambos. La única diferencia es que funciona para categorías, pero con artículos obtengo un modelo vacío en HttpPost.MVC3 - Modelo vacío en la publicación
Categorías:
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");
}
Artículos:
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");
}
Ambos puntos de vista son generados por Visual Studio y no los han cambiado. Cuando quiero eliminar una categoría, todo va bien. Pero cuando quiero eliminar un artículo, primero se selecciona correctamente de la base de datos, luego se muestra la vista (todo está bien) pero cuando hago clic en el botón Eliminar el modelo está vacío (todas las propiedades son 0, nulas o falsas) y entonces el db.DeleteArticle arroja una excepción (no hay artículo con ArticleID = 0). ¿Podría alguien darme alguna pista sobre qué debo verificar o cómo debo solucionar esto?
Lo que se ve su clase Article ¿me gusta? – Keith
¿Qué se PUBLICA? – SLaks
Sí, y al igual que @SLaks dice, puede agregar un parámetro a su acción HttpPost Delete a la 'FormCollection coll'. Una vez publicado, puede inspeccionar la colección para ver todas las claves/valores que se publicaron con el formulario. – Keith