Asp.net mvc MVC-LINQ查询和第三方控件中匿名类型的使用

Asp.net mvc MVC-LINQ查询和第三方控件中匿名类型的使用,asp.net-mvc,webforms,Asp.net Mvc,Webforms,这是一个概念性的问题,但我认为它确实有一个“答案”,希望它不会被击中头部 我在asp.NETWebForms(C#)中使用了大量LINQtoSQL进行开发(也使用了EF,但l2s足以满足我的大部分需求)。我刚刚完成了最初的MVC教程,以及“代码优先”实体模型。我可以看到“关注点分离”带来的一些好处,但鉴于我所开发的东西的类型,我想听听您对这是否适合我的看法。问题是: a) 整个MVC范式似乎都假定定义了“类”(例如我在MVC图特中定义的“电影”类)。我必须做的事情包括从linq创建临时匿名类型,

这是一个概念性的问题,但我认为它确实有一个“答案”,希望它不会被击中头部

我在asp.NETWebForms(C#)中使用了大量LINQtoSQL进行开发(也使用了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扩展,但我想我在其他控件集上的投资会损失吗

很抱歉提出了这些愚蠢的问题:)

除了这个不寻常的技巧之外,匿名类型是用于在方法中处理的,而不是用于在上下文之间传递。控制器上下文和视图上下文不同;您应该使用类型化对象在它们之间传递数据。这正是ViewModel对象的用途,所以不要抵制它们的使用


b) 诚然,您的webforms控件在MVC中对您没有好处,但您也会发现,流行的组件商店很久以前就已经将MVC扩展库尽可能多地推向市场,以期待从webforms迁移到MVC。Telerik就是其中之一-

非常感谢塔巴扎。您提到的那个不寻常的技巧真的很有趣,尽管正如您所说,在大多数情况下,类型化对象可能是正确的做法。谢谢你的建议。