【发布时间】:2015-07-09 11:21:29
【问题描述】:
所以我在这里有我的 UpdateMethod:
public void gvProducts_UpdateItem(Int32 ProductID)
{
ProductListModel model = new ProductListModel();
Product product = db.Products.Find(ProductID);
if (product == null)
{
// MAF: The item wasn't found
ModelState.AddModelError("", String.Format("Item with id {0} was not found", ProductID));
return;
}
TryUpdateModel(model);
if (ModelState.IsValid)
{
Mapper.Map(model, product);
db.SaveChanges();
gvProducts.EditIndex = -1;
}
}
它使用 AutoMapper 从 ProductList 页面的模型映射到产品实体。 GridView 上有很多列,因此我们根据用户选择显示和隐藏一些列。 我遇到的问题是在 TryUpdateModel() 期间未设置绑定到 Visible="false" 列的任何属性,因此填充了默认值。这意味着,例如,如果用户看不到价格详情,他们的价格会在保存时设置为 0。
【问题讨论】:
标签: c# asp.net gridview webforms model-binding