c# - 为 .NET MVC 中的 ObjectContext 设计回退的最佳方法是什么

标签 c# asp.net-mvc entity-framework razor

我试图在我的 View 中显示一个对象的属性(如果它存在),否则返回到默认值,例如

@if(Product.Description != null && Product.Description.Color != null){
    <li>@Product.Description.Color</li>
}

这个问题是,如果我在 View 中进行 null 检查,则 ObjectContext 已为 Product.Description 处理,如果它不存在并抛出异常。

我应该在我的 Controller 中分配一个默认值/回退,还是有办法在 View 中处理这个问题?

最佳答案

永远不要向 View 发送“事件”对象。如果这样做,您实际上是在混合 UI 和数据层。请记住,在呈现 View 时 Controller 已完成执行。

而是发送一份副本,其中包含您需要在 View 中使用的属性。

我知道有些书建议 MVC 中的“M”代表“领域模型模型”,他们建议这应该是一个实例,对于实例, Entity Framework 实体。我不同意,并认为这混合了责任。

我很幸运地使用了“AutoMapper”工具,它使从 EF 实体的属性和您在 View (ViewModel)中使用的模型的属性映射变得简单。

关于c# - 为 .NET MVC 中的 ObjectContext 设计回退的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28868980/

相关文章:

c# - 当我在 ASP MVC 、 SQL 和 Entity Framework 的基础中记录时,值传递 NULL

c# - 如何在 C# 中通过表达式构建动态查询

c# - Xamarin Android - OutOfMemoryError 异常 - 大图

c# - FCM(FirebaseMessagingService)OnNewToken 没有被 Android 击中

C#,寻找一个数的最大质因数

asp.net - 如何提示输入连接字符串的用户名和密码?

c# - UAC 和 WinForms

javascript - 单击时未定义 C# razor 对象

c# - 系统.Data.SqlClient.SqlException : Invalid column name 'GenreId'

c# - Entity Framework 和数据库连接