首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在单独的程序集中使用MVC 2.0和模型

在单独的程序集中使用MVC 2.0和模型
EN

Stack Overflow用户
提问于 2010-09-03 03:27:24
回答 2查看 254关注 0票数 4

我是MVC的新手,尽管有很多信息(我确实有很多)是非常有用的--很难清楚地理解如何用MVC 2.0实现我的确切需求。

我想提出以下解决办法:

  • 使用MVC 2.0项目提供一个web。
  • 使用Linq对SQL类项目进行数据持久性。
  • 我有两个独立的代码模块,需要访问上面的Linq到SQL模型--所以我无法将Linq到SQL模型直接包含在MVC项目中。
  • 另外,我在Linq项目前面有一个业务逻辑层。

我的问题是:

  • 如何设置MVC应用程序的模型部分以通过BLL指向我的Linq到SQL项目?
  • 如何执行web应用程序验证?我可以使用MVC 2.0模型验证吗?如果不是,还有什么可供选择的呢?
  • 最后(稍微撇开一点)-- ViewModel是什么?这与模型有什么不同?

这么多问题。但这是一个令人兴奋的新技术和数据访问问题,所有其他我必须尽快处理的问题,我认为MVC 2.0是非常棒的。

谢谢你能提供的任何提示。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-03 03:38:08

如何设置MVC应用程序的模型部分以通过BLL指向我的Linq到SQL项目?

通常,您将为此使用存储库模式。控制器对存储库有一个引用--存储库从数据库中返回域对象。MVC应用程序没有LINQ存在的知识。

如何执行web应用程序验证?我可以使用MVC 2.0模型验证吗?如果不是,还有什么可供选择的呢?

将视图模型放在MVC项目中。这些视图模型可能与您的域模型紧密一致,但它们的关注点是表示模型。将您的数据注释放在这些视图模型上进行验证-- MVC框架将自动确保在这些带有数据注释的视图模型上进行验证。它是可插拔的,这样您就可以使用替代方案了--但是使用MVC 2,它可以很好地烘焙,这包括客户端验证。

最后(稍微撇开一点)-- ViewModel是什么?这与模型有什么不同?

我部分地回答了上面的这个问题。您的领域模型的形状可能不是您需要显示您的视图-视图模型是伟大的桥梁这一差距。此外,即使形状确实与视图模型完全匹配,也是一个好主意,这样您就可以将UI验证代码和其他表示元数据放在它们上(因为您不希望域模型上有任何与表示逻辑相关的内容)。

这是视图模型模式的链接。

希望这能有所帮助。

票数 4
EN

Stack Overflow用户

发布于 2010-09-03 03:39:29

  1. 您可以添加对从BLL程序集中公开的对象的引用,并将它们用作模型。
  2. 当您想要向生成的类添加验证时,请使用好友类
  3. ViewModel是模型数据的自定义集合。每个视图都有一个视图,因为ViewModel的目的是以一种方便和简洁的方式精确地显示特定视图所需的数据。

一个例子可能是一个同时包含订单和OrderDetail信息的视图。ViewModel可以保存对每个类型的存储库和业务对象的内部引用。ViewModel的属性将这些对象的数据合并在一起。

ViewModels在您的情况下也是有用的,因为您希望您的模型位于一个单独的程序集中。可以将DataAnnotations应用于ViewModel属性以进行验证。您将创建ViewModels的“原始”业务对象模型内部属性,并公开检索和持久化数据的公共方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3632865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档