2
我有一個場景,我需要綁定到一個接口 - 爲了創建正確的類型,我有一個自定義模型聯編程序,知道如何創建正確的具體類型這可以不同)。ModelBinders,複雜的嵌套類型和接口
但是,創建的類型從來沒有正確填充字段。我知道我錯過了一些非常簡單的東西,但是誰能告訴我爲什麼或者至少需要爲模型聯編程序進行操作工作和綁定屬性?
public class ProductModelBinder : DefaultModelBinder
{
override public object BindModel (ControllerContext controllerContext, ModelBindingContext bindingContext)
{
if (bindingContext.ModelType == typeof (IProduct))
{
var content = GetProduct (bindingContext);
return content;
}
var result = base.BindModel (controllerContext, bindingContext);
return result;
}
IProduct GetProduct (ModelBindingContext bindingContext)
{
var idProvider = bindingContext.ValueProvider.GetValue ("Id");
var id = (Guid)idProvider.ConvertTo (typeof (Guid));
var repository = RepositoryFactory.GetRepository<IProductRepository>();
var product = repository.Get (id);
return product;
}
}
在我的情況下,模型是一個複雜類型,有一個IProduct財產,這是那些我需要填寫值
型號:
[ProductBinder]
public class Edit : IProductModel
{
public Guid Id { get; set; }
public byte[] Version { get; set; }
public IProduct Product { get; set; }
}