【问题标题】:MVC - usage of and anonymous types from LINQ queries, and third party controlsMVC - 来自 LINQ 查询和第三方控件的匿名类型的使用
【发布时间】:2013-03-25 04:25:23
【问题描述】:

这是一个概念性问题,但我认为它确实有一个“答案”,希望它不会被撞到头上。

我使用大量 linq to sql 在 asp.net webforms (C#) 中进行开发(也使用过 EF,但 l2s 足以满足我的大部分需求)。我刚刚完成了一个初始 MVC 教程,以及“代码优先”实体模型。我可以看到一些好处,特别是在“关注点分离”方面,但我想听听你对这是否适合我的看法,因为我开发的东西类型。问题:

a) 整个 MVC 范例似乎假设定义了“类”(例如,我所做的 MVC 教程中的“电影”类)。我所做的必须包括从 linq 创建临时匿名类型并将它们绑定到网格或图表。要使用 MVC,我是否必须每次都创建已定义的类才能将它们从控制器传递到视图?这个问题(http://stackoverflow.com/questions/410073/linq-anonymous-types-mvc-views-help)似乎暗示了这一点,或者字典作为一种解决方法,仅在有限的情况下有效。

b) 我使用了很多第三方控件(telerik、devexpress 等)。似乎这些都不适用于MVC? Telerik 有一些免费的 MVC 扩展,但我认为我在其他控件集上的投资会丢失?

抱歉提出了一些无聊的问题:)

标记

【问题讨论】:

    标签: asp.net-mvc webforms


    【解决方案1】:

    a) 除了这个不寻常的技巧http://tomasp.net/blog/cannot-return-anonymous-type-from-method.aspx,匿名类型用于在方法内进行处理,而不是用于在上下文之间传递。控制器上下文和视图上下文不同;您应该使用类型化对象在它们之间传递数据。这正是 ViewModel 对象的用途,所以不要抗拒它们的使用。

    b) 确实,您的 webforms 控件不会使您在 MVC 中受益,但您也会发现,流行的组件商店很久以前就已将 MVC 扩展库尽可能多地推向市场,以期从将 Web 表单转换为 MVC。 Telerik 就是其中之一 - http://www.telerik.com/products/aspnet-mvc.aspx

    【讨论】:

    • 非常感谢 Tahbaza。您提到的那个不寻常的技巧确实很有趣,尽管正如您所说,在大多数情况下,键入对象可能是正确的做法。感谢您的建议。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-03
    • 1970-01-01
    • 2022-06-23
    • 1970-01-01
    相关资源
    最近更新 更多