Tôi đang thử điều này trong Tạo và Chỉnh sửa (đối tượng của tôi được gọi là 'thực thể'): -
if (ModelState.IsValid)
{
RemoveStringNull(entity);
db.Entity.Add(entity);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(entity);
}
Cái này gọi là: -
private void RemoveStringNull(object entity)
{
Type type = entity.GetType();
FieldInfo[] fieldInfos = type.GetFields(BindingFlags.Instance | BindingFlags.GetField | BindingFlags.Public | BindingFlags.NonPublic);
for (int j = 0; j < fieldInfos.Length; j++)
{
FieldInfo propertyInfo = fieldInfos[j];
if (propertyInfo.FieldType.Name == "String" )
{
object obj = propertyInfo.GetValue(entity);
if(obj==null)
propertyInfo.SetValue(entity, "");
}
}
}
Nó sẽ hữu ích nếu bạn sử dụng Database First và các thuộc tính Model của bạn bị xóa sạch mỗi lần hoặc các giải pháp khác không thành công.