Sar*_*ana 10 c# asp.net asp.net-mvc asp.net-mvc-4
目前,我在控制器文件中使用私有静态方法将域模型映射到视图模型,反之亦然.如下所示:
public ActionResult Details(int personID)
{
Person personDM = service.Get(personID);
PersonViewModel personVM = MapDmToVm(personDM);
return View(personVM);
}
private static PersonViewModel MapDmToVm(Person dm)
{
PersonViewModel vm;
// Map to VM
return vm;
}
Run Code Online (Sandbox Code Playgroud)
有没有其他标准的方法来做到这一点?
Yul*_*dra 19
我更喜欢将映射逻辑放在视图模型(dto)类中,因为我们希望尽可能保持域模型的清晰,并且域模型可能会随着时间的推移而改变.
public class Person
{
public string Name {get; set;}
}
public class PersonViewModel
{
public string Text {get; set;}
public static implicit operator PersonViewModel(Person dm)
{
var vm = new PersonViewModel { Text = dm.Name };
return vm;
}
public static implicit operator Person(PersonViewModel vm)
{
var dm = new Person { Name = vm.Text };
return dm;
}
}
Run Code Online (Sandbox Code Playgroud)
并在没有显式转换的控制器中使用它.
Person dm = service.Get(id);
PersonViewModel vm = dm;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5121 次 |
最近记录: |