Luc*_*Sam 5 c# asp.net-mvc viewmodel
所以我有几乎1:1的视图比例来查看模型,事情似乎进展顺利.如果我正确理解他们的目的,那么看起来应该是视图模型
在努力遵守这些原则时,我的报告控制器有点像墙.为客户生成的各种报告需要访问大约30个左右的不同属性.因此,我的视图模型最终看起来与我的实体模型非常相似.
当然,最简单的解决方案是将实体模型传递给视图,这样我就可以访问所有属性,但是我还需要能够为空白或"不完整"的客户生成报告.这会导致问题在尝试访问我的Entity模型上的导航属性时将引用异常.
所以我可以对视图中的每个字段使用空检查,这看起来不太吸引人......或者我可以实现视图模型以避免空引用异常.问题是我最终得到了一个看起来像这样的视图模型:
var customer = customersRepository.GetCustomer(id);
var viewModel = new CustomersViewModel()
{
FirstName = customer.FirstName,
LastName = customer.LastName,
Address = customer.MailingAddress.Address,
City = customer.MailingAddress.City,
// and on and on for about 30 different properties
};
return View(viewModel);
Run Code Online (Sandbox Code Playgroud)
输入所有这些属性是其中一个感觉错误的事情.我错过了一个更优雅的解决方案吗?
问题是我最终会得到一个看起来像这样的视图模型
AutoMapper是必须避免编写您发布的代码的必要条件.我还建议你观看优秀的控制器来自AutoMapper的创建者的饮食视频.观看完这段视频后(以及您身边的一点努力),您的控制器动作将减少到一个漂亮的一个班轮.
| 归档时间: |
|
| 查看次数: |
846 次 |
| 最近记录: |