asp.net-mvc-3 - 如何将 Massive ORM 动态查询输出到 MVC 3 View ?

标签 asp.net-mvc-3 massive

当我使用 Massive ORM 通过 .Find() 方法检索记录时,它返回一个 Massive.DynamicModel.Query 对象,该对象与 ASP.MVC 3 View 相处得不太好。

Controller :

public ViewResult Details(int id)
{
    // Massive ORM Find syntax requires this next statement to use 'dynamic' not 'var'
    dynamic table = new Things();

    // Thing will return as type Massive.DynamicModel.Query
    var Thing = table.Find(ThingId:id); 

    return View(Issue);
}

在 View 中,我尝试了@model dynamic 和@model Massive.DynamicModel.Query,但都不允许我使用普通的@Model.Name 语法访问“Thing”对象的属性。

这里有一些关于如何使用 MVC3 View 处理 ExpandoObjects 的讨论,但没有关于到目前为止对我有用的 Massive.DynamicModel.Query 实现的特别讨论。

关于如何将 Massive.DynamicModel.Query 对象转换为类型化对象的任何一般想法?

最佳答案

两个词:查看模型。强类型 View 模型,这就是您应该传递给 View 的内容。不是动态,不是 expandos,不是匿名对象,不是 ViewData,不是 ViewBag => 只有强类型 View 模型。因此,首先定义一个 View 模型,该模型将表示该 View 将使用的数据。然后让您的 Controller 操作执行必要的操作,以便将您的存储库吐出的任何内容转换为将传递给 View 的 View 模型。

如果不遵循这个基本规则,您的 ASP.NET MVC 体验可能会很快变成一场噩梦。

关于asp.net-mvc-3 - 如何将 Massive ORM 动态查询输出到 MVC 3 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7680839/

相关文章:

c# - 无法使用 Rob Conery 的 Massive 保存列表<dynamic>

c# - 自定义授权属性捕获请求的角色

asp.net-mvc-3 - asp.net mvc 3 通过第一个字母分隔 linq 结果

asp.net - else 和 { 之间的注释

c# - 海量 ORM 和继承

c# - 如何使用 Massive ORM 实现验证?

c# - 允许 IIS 运行 cmd 命令

asp.net-mvc - 用于新 ASP.NET MVC 3 站点的 Razor 与 Webforms View 引擎

c# - 使用微型 ORM 时的最佳策略?

asp.net-mvc-3 - 使用 Massive ORM 填充下拉列表?