我有bindingBase.ValueProvider.GetValue(bindingContext.ModelName)ModelBinding,它返回null,但如果我使用bindingContext.ValueProvider.GetValue(「id」)是返回正確的記錄。任何想法缺少什麼?我應該以某種方式註冊模特類嗎?ModelBindingContext.ValueProvider.GetValue(bindingContext.ModelName)返回null
public class EntityModelBinder<TEntity>: IModelBinder where TEntity : Entity
{
private readonly IUnitOfWork unitOfWork;
public EntityModelBinder(IUnitOfWork unitOfWork)
{
this.unitOfWork = unitOfWork;
}
public object BindModel(ControllerContext controllerContext,
ModelBindingContext bindingContext)
{
ValueProviderResult value = bindingContext.ValueProvider.GetValue(bindingContext.ModelName);
var id = Guid.Parse(value.AttemptedValue);
var entity = ((IGenericRepository<TEntity>)unitOfWork.GetRepository(typeof(TEntity))).GetByID(id);
return entity;
}
}
和控制器的呼叫是「條例」是我的實體類之一,它的的UnitOfWork的一部分:
public ActionResult Edit(Bill bill)
{
var model = Mapper.Map<Bill, BillEditModel>(bill);
return View("Edit",model);
}