有关ASP.NET MVC模型位置的最佳实践

时间:2009-06-01 14:00:02

标签: asp.net-mvc model

是否有任何最佳实践涵盖了应该定义ASP.NET MVC模型的地方?

一个新的ASP.NET MVC项目有一个很好的模型文件夹供他们使用,但在生产环境中,他们可以来自其他地方:

  • 第三方类库
  • WCF服务

强类型视图是否可以使用在这样的位置定义的类?

4 个答案:

答案 0 :(得分:6)

在几乎所有我参与ASP.NET MVC模型的项目中,View模型都比传统意义上的模型更多。我还没有一个项目,我可以使用我在View模型的数据访问中使用的相同模型。大多数页面上都需要显示太多其他信息。因此,我会将我的模型存储在模型文件夹中,或者将它们存储在一个单独的库中,并与我的所有其他MVC特定类一起存储。

答案 1 :(得分:2)

我不知道将模型放在WCF服务中是什么意思。如果您的意思是使用WCF服务来公开您需要的模型对象,那就可以了。

关于用于保存模型,视图和控制器的单独类库,我认为这是一种非常常见的方法并且运行良好。事实上,我相信当应用程序的大小和复杂性增加时,这确实是一个要求。它是MVC应用程序中不同逻辑组件的物理分离

答案 2 :(得分:0)

我发现的一个问题是,除非在Web项目中定义了模型,否则当使用标记中指定的强类型视图时,VisualStudio似乎无法找到它。我的模型通常在一个单独的项目中定义,我发现要使用强类型视图,我需要创建一个代码隐藏,以便我有一个派生自强类型ViewPage的类。然后我更改标记并将其与此类关联。

答案 3 :(得分:0)

您需要将命名空间导入视图页面。 需要代码隐藏页面。

使用指令

<%@ import namespace='your.namespace.here' %>

紧接在<@ Page.....指令

之后