4

如果我有一个类似的类:名字:如果我需要从自定义模型联编程序检索一个对象,活页夹应该与服务层,存储库层还是...交互?

public class Person 
{ 
    public string firstName { get; set; } 
    public string lastName { get; set; } 
    public Pet myPet { get; set; } 
} 

当我创建一个自定义的模型绑定,从我的表格后不会在宠物发送,它会在这样的数据发送“由于传入了Pet的名称,而不是实际的Pet对象,因此需要从模型联编程序中检索Pet对象。由于Pet名称是传入的,而不是实际的Pet对象,所以需要从模型联编程序中检索Pet对象。

我的问题是,如果模型联编程序与服务层,存储库层交互,还是应该检索Pet?与业务层的问题是,我似乎没有能够获得的ModelState时初始化服务:((this.ModelState)给我一个错误)

_petService = new PetService(new ModelStateWrapper(this.ModelState)); 

如果我需要的模型绑定创建Person对象,那么Pet需要以某种方式分配......我该怎么做呢?

回答

2

我所做的是使用视图/表示模型,而不是绑定到业务对象。请记住,您的用户可能会输入无效的值,并且您需要在提示用户更正错误时将这些无效值重新显示给用户。但是,您的“真实”业务对象可能不会接受无效值。所以视图模型必须允许任何用户输入,即使输入业务对象也不会接受。

这使绑定变得容易。只有在使用(有效)用户输入更新业务对象时,才需要命中存储库进行绑定。

+0

那么你是说你用一堆公共字符串创建一个PetBinding对象? – 2009-07-13 15:53:32

相关问题